Investigate problem, verify findings, and derive solutions
56
63%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
Fix and improve this skill with Tessl
tessl review fix ./skills/recipe-diagnose/SKILL.mdExplicit User Instruction: The user explicitly instructs and authorizes every subagent call named in this recipe. Execute each applicable call when its prerequisites are met.
Execute Skill: llm-friendly-context before writing Agent prompts, handoffs, or generated artifacts. Execute Skill: subagents-orchestration-guide before making workflow decisions, invoking agents, or resolving findings.
Context: Diagnosis flow to identify root cause and present solutions
Target problem: $ARGUMENTS
Core Identity: "I am an orchestrator."
Local authority gate: Make this recipe's workflow decisions and validate each returned result directly; delegate semantic deliverable production to the named specialist.
Execution Method:
Orchestrator invokes sub-agents and passes structured JSON between them.
At each Agent invocation below, build the prompt as a mechanical extraction: copy the named source values into the exact fields, apply only the declared serialization, then invoke immediately.
Execution Gate: Each step below establishes evidence required by the next decision. Complete Steps 0-7 in order, including every required investigation and verification retry. Advance only through the current step's stated quality or coverage condition; invoke solver only after coverage is closed.
Define a semantic scope envelope from the reported problem and repository evidence by recording:
The envelope bounds relevance. Keep every relationship above active throughout investigation, including after a plausible cause appears.
Problem → scope envelope → investigator → verifier
↑ │
└── named gaps ───┘
coverage closed → design decision gate when applicable → solver → Report
material evidence unavailable → limitation/block reportContext Separation: Pass only structured JSON output to each step. Each step starts fresh with the JSON data only.
Agent tool invocation:
subagent_type: investigator
description: "Investigate problem"
prompt: |
Comprehensively collect information related to the following phenomenon.
Phenomenon: [Problem reported by user verbatim]
diagnosisScopeEnvelope: [Step 0 semantic scope envelope]Expected output: scopeAccounting, pathMap (execution paths per symptom), failurePoints (faults found at each node), impactAnalysis per failure point, unexplored areas, investigation limitations
Review investigation output:
Quality Check (verify JSON output contains the following):
pathMap exists with at least one symptom, and each symptom has at least one path with nodes listedlocation, upstreamDependency, symptomExplained, causalChain (reaching a stop condition), checkStatus, evidence with a source citing a specific file or locationcomparisonAnalysis (normalImplementation found or explicitly null)causeCategory for each failure point is one of: typo / logic_error / missing_constraint / design_gap / external_factorinvestigationSources covers at least 3 distinct source types (code, history, dependency, config, document, external)scopeAccounting accounts for every scope-envelope item as investigated, excluded with governing evidence, or unavailable with its potential effectIf quality insufficient: Re-run investigator specifying missing items explicitly:
prompt: |
Re-investigate with focus on the following gaps:
- Missing: [unsatisfied Step 2 Quality Check items, copied as written]
Use these previous investigation results as context and investigate only the gaps listed above. Return one updated complete investigation JSON, retaining prior evidence that remains valid:
[Previous investigation JSON]Proceed to verifier once quality is satisfied.
Agent tool invocation:
subagent_type: verifier
description: "Verify investigation results"
prompt: Verify the following investigation results against the semantic diagnosis scope envelope.
diagnosisScopeEnvelope: [Step 0 semantic scope envelope]
Investigation results: [Investigation JSON output]Expected output: Scope-envelope coverage, coverage check (missing paths, unchecked nodes), Devil's Advocate evaluation per failure point, failure point evaluation with checkStatus, coverage assessment and disposition
Coverage Criteria:
Branch on verifier output before invoking solver:
coverageDisposition: closed: freeze the complete verified cause set and continue to the applicable design decision gate.coverageDisposition: gaps_remaining: return to Step 1 with only verifier's named gaps, their relevance to the cause set, and the prior investigation JSON. Keep scopeAccounting monotonic by preserving every accounted item. Add a gap only when new evidence identifies a distinct previously unaccounted gap within the semantic scope envelope that can materially change the supported cause set. Closing a gap or establishing that its evidence is unavailable advances convergence; renaming, splitting, or further describing the same gap preserves its existing state. When no available action can produce one of those state changes, return the attempted recovery to verifier for evidence_unavailable. Repeat verification after the investigation result passes Step 2.coverageDisposition: evidence_unavailable: finish with the unavailable-evidence report, including the evidence, attempted recovery, and why it can change the cause set.Continue investigation while an available action can advance a material gap. Completion is determined by verifier-established semantic closure or by confirmation that no available action can advance the gap.
After coverage is closed, pass the complete verified cause set to solver. Ownership, contract, and technical design corrections are ordinary solution candidates when they preserve the confirmed outcome, desired-future requirements, and non-goals; detecting a design gap does not create a user decision. If evidence shows those value boundaries cannot all remain true, or a proposed remedy requires authorization for an irreversible external action, report that exact boundary with the solution evidence instead of inventing a choice.
Agent tool invocation:
subagent_type: solver
description: "Derive solutions"
prompt: Derive solutions based on the following verified failure points.
Confirmed failure points: [verifier's conclusion.confirmedFailurePoints]
Refuted failure points: [verifier's conclusion.refutedFailurePoints]
Failure point relationships: [verifier's conclusion.failurePointRelationships]
Impact analysis: [investigator's impactAnalysis]
Coverage disposition: closedExpected output: Materially distinct feasible solutions derived from the complete verified cause set, tradeoff analysis, recommendation and implementation steps, residual risks
Prerequisite: coverageDisposition: closed
For coverageDisposition: closed, require coverageAssessment: sufficient and use the verified-solution report below.
## Diagnosis Result Summary
### Identified Failure Points
[Confirmed failure points from verification results]
- Per failure point: location, symptom explained, finalStatus
### Verification Process
- Path coverage: [Paths traced and nodes checked]
- Additional investigation iterations: [count and named gaps closed]
- Coverage assessment: sufficient
- Coverage disposition: closed
### Recommended Solution
[Solution derivation recommendation]
Rationale: [Selection rationale]
### Implementation Steps
1. [Step 1]
2. [Step 2]
...
### Alternatives
[Alternative description]
### Residual Risks
[solver's residualRisks]
### Post-Resolution Verification Items
- [Verification item 1]
- [Verification item 2]For coverageDisposition: evidence_unavailable, return this limitation-only form:
## Diagnosis Limited by Unavailable Evidence
### Verified Findings
[Failure points and counter-evidence verified without the missing evidence]
### Material Evidence Gap
- Missing evidence: [exact evidence]
- Recovery attempted: [actions and results]
- Why unavailable: [reason]
- Possible effect on cause set: [what could be confirmed, weakened, added, or refuted]
### Coverage
- Coverage assessment: [partial/insufficient]
- Coverage disposition: evidence_unavailablecoverageDisposition: closed; completed the unavailable-evidence report for coverageDisposition: evidence_unavailable9b7f687
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.