Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Investigate problem, verify findings, and derive solutions
.claude/skills/shinpr-recipe-diagnose/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-18 | ✗→✓ | ▲ Improved | 107% | 0% |
| case-10 | ✗→✓ | ▲ Improved | 131% | 0% |
| case-12 | ✗→✓ | ▲ Improved | 223% | 0% |
| case-13 | ✗→✓ | ▲ Improved | 101% | 0% |
| case-14 | ✗→✓ | ▲ Improved | 77% | 0% |
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.
Task Registration: Register execution steps using TaskCreate and proceed systematically. Update status using TaskUpdate.
| Type | Criteria | |------|----------| | Change Failure | Indicates some change occurred before the problem appeared | | New Discovery | No relation to changes is indicated |
If uncertain, ask the user whether any changes were made right before the problem occurred.
If the following are unclear, ask with AskUserQuestion before proceeding:
Invoke rule-advisor via Agent tool:
subagent_type: rule-advisor
description: "Problem essence analysis"
prompt: Identify the essence and required rules for this problem: [user-reported problem verbatim]Confirm from rule-advisor output:
taskAnalysis.essence: Primary purpose of the diagnosismetaCognitiveGuidance.taskEssence: Root problem beyond surface symptomsselectedRules: Applicable skill and section nameswarningPatterns: Patterns to avoidExecute each selected skill by its skill name and apply the named sections in the context of the complete skill before constructing the investigator prompt.
Before investigation, define a semantic scope envelope from the confirmed 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.
Register the following using TaskCreate and execute:
Agent tool invocation:
subagent_type: investigator
description: "Investigate problem"
prompt: |
Comprehensively collect information related to the following phenomenon.
Phenomenon: [Problem reported by user verbatim]
Problem essence: [exact `metaCognitiveGuidance.taskEssence` from Step 0.3]
diagnosisScopeEnvelope: [Step 0.4 semantic scope envelope]
Selected rules: [complete `selectedRules` from Step 0.3]
Warning patterns: [complete `warningPatterns` from Step 0.3]
[For change failures, additionally include:]
Change details: [user-confirmed change-details statement verbatim]
Affected area: [user-confirmed affected-area statement verbatim]
Stated relationship: [user-confirmed relationship statement verbatim]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)warningPatterns itemscopeAccounting 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.4 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, inspect the verified cause set. When resolving a confirmed failure point requires reconsidering ownership, a contract, or an approved design decision, including causeCategory: design_gap, use AskUserQuestion: "A verified design-level issue was detected. How should we proceed?"
Pass includeRedesign: true to solver only when the user selects B. This gate remains before solution selection; investigation and verification proceed independently of the 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: closed
[When set by Step 5] Include redesign: trueExpected 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_unavailableOther measured skills in the registry, with their headline benchmark lift.