Files
agent-skills/skills/converge-implementation-to-spec/SKILL.md
T
MalinandClaude Sonnet 5 051688e196 feat: 10 new skills scouted from spec-kit and deepseek-harness
Sourced via Codex scan of github/spec-kit and deepseek-ai/deepseek-harness
(scan reports in granja/_temp/codex-logs/), then authored by Codex against
this repo's exact SKILL.md format/density, calibrated against
bastille-jail-provisioning/writing-implementation-plans/tdd. Spot-checked
two directly (write-feature-specification, harden-async-lifecycle-code) --
concrete, code-example-backed procedures, not generic advice.

From spec-kit: write-feature-specification, clarify-feature-specification,
audit-requirements-quality, analyze-spec-plan-task-consistency,
converge-implementation-to-spec.

From deepseek-harness: harden-async-lifecycle-code, test-real-entry-paths,
snapshot-agent-behavior, maintain-decision-records,
remove-reasoning-transcript-prose.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-15 14:28:54 +02:00

114 lines
6.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
name: converge-implementation-to-spec
description: Use when implementation exists and must be compared against its specification, plan, and task ledger to classify remaining intent gaps and append remediation work. Pairs with verification-before-completion but does not replace or duplicate its independent evidence checks.
---
# Converge Implementation to Specification
Convergence answers “what specified intent is still not represented correctly in the codebase?” It is not a generic final verification pass. Use `verification-before-completion` separately to independently prove completion claims and test results after convergence work is implemented.
## 1. Establish authoritative scope
Read the complete specification, technical plan, current task ledger, and mandatory project principles. Refuse to infer a larger feature from nearby code or conversation history.
Extract named file/component touch-points from the plan and tasks. Expand scope only through repository searches for the exact domain concepts and public interfaces named by the artifacts. Record why each additional file belongs.
If code is sparse or absent, continue: specified obligations are `missing`, not an analysis failure.
## 2. Build an intent inventory
Create one row per:
- functional requirement;
- buildable success criterion;
- user-story acceptance scenario;
- binding plan decision;
- mandatory project principle relevant to this feature;
- existing task whose unchecked intent is not fully represented elsewhere.
```text
Intent key | Source | Obligation | Expected code surface | Evidence sought
FR-008 | spec | revoke active challenge | recovery service + public entry | state guard and observable outcome
US1/AC2 | spec | expired challenge cannot mutate credentials | validation path | negative path before mutation
```
Do not count a task checkbox as evidence. The ledger records intent and work history; code and observable tests show realization.
## 3. Inspect implementation by intent
For every row:
1. locate the public entry path and relevant internal owner;
2. read implementation, tests, migrations/configuration, and wiring;
3. compare observable behavior and constraints with the source wording;
4. record concrete evidence by file and symbol or section;
5. create a finding only when intent is not fully represented.
Classify each gap:
- **missing:** no implementation exists;
- **partial:** some path or case exists but the obligation is incomplete;
- **incorrect:** implementation contradicts the intended behavior, constraint, or principle;
- **obsolete:** code or a task represents intent that has been removed or superseded.
Use `obsolete` for awareness and remediation, not as authorization to delete. First determine whether compatibility, migration, or historical data still depends on it.
## 4. Assign severity
- **CRITICAL:** violates a mandatory principle or makes baseline P1 behavior unsafe or impossible.
- **HIGH:** missing/incorrect core requirement or acceptance scenario.
- **MEDIUM:** partial secondary behavior, plan drift with material maintenance cost, or obsolete work of unclear consequence.
- **LOW:** bounded polish gap or low-risk stale surface.
Severity measures consequence, not estimated effort.
## 5. Present findings before writing
```markdown
| ID | Gap | Severity | Source | Evidence | Remediation |
|----|-----|----------|--------|----------|-------------|
| F001 | partial | HIGH | US1/AC2 | `src/recovery.ts` rejects expiry after credential mutation | Move expiry guard before mutation and add a public-path regression test. |
```
Include counts of requirements, acceptance scenarios, plan decisions, and principles inspected, plus findings by gap and severity. Distinguish “no evidence found” from “evidence disproves intent.”
## 6. Append concrete remediation tasks
Do not rewrite settled spec/plan text and do not renumber or edit prior tasks. Append a new `Convergence` phase only when actionable findings exist.
1. find the largest existing task number and phase number;
2. create the next phase at the end;
3. order CRITICAL, HIGH, MEDIUM, LOW;
4. emit one independently completable task per finding;
5. cite the source and gap class;
6. name exact files/symbols when known and observable acceptance evidence.
```markdown
## Phase 7: Convergence
- [ ] T042 **CRITICAL** Enforce the project isolation principle in `src/jobs/dispatch.ts` and cover the public submission path; reject cross-tenant job IDs without reading their payload. (Principle II; incorrect)
- [ ] T043 Move the expiry guard before credential mutation in `src/recovery.ts` and add a real-entry regression test for US1/AC2. (US1/AC2; partial)
```
For an obsolete surface, phrase the task as “review and justify, migrate, or remove,” with explicit compatibility checks. Do not prejudge deletion.
Never add an empty convergence phase. If a prior convergence phase exists, append a newly numbered phase; its old checkboxes are history, not scratch space.
## 7. Repeat until genuinely converged
After remediation is implemented, rebuild the inventory from current artifacts and inspect again. Do not merely check whether appended tasks are marked done. A follow-up may expose a deeper partial or an obsolete workaround.
Stop only when:
- every inventory row has concrete implementation evidence;
- no missing, partial, incorrect, or actionable obsolete finding remains;
- no new out-of-scope behavior requires owner review;
- task ledger has no unchecked convergence work;
- mandatory principles are represented in code and appropriate tests.
Then leave the ledger unchanged and report the counts inspected. Phrase the result as convergence against the defined artifact scope, not proof that the whole product is bug-free.
## 8. Hand off to independent verification
Run the repositorys relevant checks and actual entry paths under `verification-before-completion`. That skill owns the rule that test claims and delegate reports must be independently rechecked. This skill owns intent enumeration, semantic code comparison, gap classification, and remediation-ledger maintenance; do not duplicate generic “run tests and trust the output” guidance here.