@dsalazardev/ai-hub-cli 0.1.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +63 -4
- package/dist/backup/snapshots.js +12 -0
- package/dist/catalog.d.ts +83 -0
- package/dist/catalog.js +350 -0
- package/dist/cli/args.js +1 -0
- package/dist/cli/context.js +5 -0
- package/dist/cli/doctor.js +105 -14
- package/dist/cli/items.d.ts +1 -1
- package/dist/cli/items.js +1 -1
- package/dist/cli/maintenance.js +105 -51
- package/dist/cli/memory.js +9 -0
- package/dist/cli/onboarding.d.ts +33 -1
- package/dist/cli/onboarding.js +450 -54
- package/dist/cli/run.d.ts +3 -1
- package/dist/cli/run.js +10 -7
- package/dist/cli/types.d.ts +3 -0
- package/dist/concurrency.d.ts +5 -0
- package/dist/concurrency.js +23 -0
- package/dist/engine/engine.d.ts +19 -1
- package/dist/engine/engine.js +52 -0
- package/dist/engine/gates.d.ts +16 -0
- package/dist/engine/gates.js +154 -15
- package/dist/harness/memory/ledger.d.ts +6 -0
- package/dist/harness/memory/ledger.js +44 -2
- package/dist/manifest/manifest.d.ts +20 -1
- package/dist/manifest/manifest.js +35 -11
- package/dist/presets/materialize.d.ts +14 -1
- package/dist/presets/materialize.js +132 -11
- package/dist/speckit/binding.d.ts +15 -0
- package/dist/speckit/binding.js +66 -0
- package/dist/speckit/commands.d.ts +46 -0
- package/dist/speckit/commands.js +131 -0
- package/dist/speckit/doctor.d.ts +14 -0
- package/dist/speckit/doctor.js +103 -0
- package/dist/speckit/runner.d.ts +19 -0
- package/dist/speckit/runner.js +22 -0
- package/dist/speckit/seal.d.ts +12 -0
- package/dist/speckit/seal.js +47 -0
- package/dist/speckit/settings.d.ts +36 -0
- package/dist/speckit/settings.js +75 -0
- package/dist/speckit/state.d.ts +59 -0
- package/dist/speckit/state.js +279 -0
- package/dist/speckit/version.d.ts +8 -0
- package/dist/speckit/version.js +53 -0
- package/dist/sync/config.js +3 -2
- package/dist/sync/render.js +35 -1
- package/dist/sync/sync.d.ts +4 -0
- package/dist/sync/sync.js +68 -25
- package/dist/sync/targets.d.ts +13 -0
- package/dist/sync/targets.js +5 -0
- package/engine/engine.yaml +65 -31
- package/manifest.json +28 -47
- package/package.json +2 -1
- package/presets/angular-express/preset.yaml +2 -4
- package/presets/base/preset.yaml +1 -3
- package/presets/generic-ts/preset.yaml +1 -3
- package/presets/python/preset.yaml +1 -3
- package/rules/skill-quality/skill-behavior-rubric.md +63 -0
- package/rules/skill-quality/skill-harden-rubric.md +102 -0
- package/rules/skill-quality/skill-migration-brief.md +200 -0
- package/rules/skill-quality/skill-rubric.md +40 -0
- package/schema/engine.schema.json +22 -3
- package/schema/manifest.schema.json +22 -0
- package/skills/shared/analyze/SKILL.md +2 -1
- package/skills/shared/clarify/SKILL.md +2 -1
- package/skills/shared/implement/SKILL.md +2 -1
- package/skills/shared/plan/SKILL.md +2 -1
- package/skills/shared/review/SKILL.md +2 -1
- package/skills/shared/sdd/SKILL.md +2 -1
- package/skills/shared/sdd-init/SKILL.md +2 -1
- package/skills/shared/ship/SKILL.md +2 -1
- package/skills/shared/specify/SKILL.md +2 -1
- package/skills/shared/tasks/SKILL.md +2 -1
- package/skills/shared/verify/SKILL.md +2 -1
- package/skills/shared/speckit-analyze/SKILL.md +0 -35
- package/skills/shared/speckit-assess-decide/SKILL.md +0 -36
- package/skills/shared/speckit-assess-define/SKILL.md +0 -36
- package/skills/shared/speckit-assess-intake/SKILL.md +0 -38
- package/skills/shared/speckit-assess-research/SKILL.md +0 -36
- package/skills/shared/speckit-assess-shape/SKILL.md +0 -36
- package/skills/shared/speckit-bug-assess/SKILL.md +0 -38
- package/skills/shared/speckit-bug-fix/SKILL.md +0 -37
- package/skills/shared/speckit-bug-test/SKILL.md +0 -37
- package/skills/shared/speckit-checklist/SKILL.md +0 -35
- package/skills/shared/speckit-clarify/SKILL.md +0 -32
- package/skills/shared/speckit-constitution/SKILL.md +0 -35
- package/skills/shared/speckit-converge/SKILL.md +0 -36
- package/skills/shared/speckit-implement/SKILL.md +0 -32
- package/skills/shared/speckit-plan/SKILL.md +0 -37
- package/skills/shared/speckit-specify/SKILL.md +0 -36
- package/skills/shared/speckit-tasks/SKILL.md +0 -34
|
@@ -3,7 +3,8 @@ name: sdd-init
|
|
|
3
3
|
description: "Use when calibrating an existing repo for the ai-hub Spec-Kit chain: detect stack, package manager, test runners and apply/verify commands, refresh the skill registry, and write the runtime config at 02-DOCS/wiki/sdd/config.yaml. NOT the dispatcher that routes SDD phases (that is `sdd`), NOT first-contact user/workspace bootstrap (that is `init`)."
|
|
4
4
|
tags: [sdd, init, config, testing, registry]
|
|
5
5
|
recommends: [sdd, specify, implement, verify]
|
|
6
|
-
profiles: [
|
|
6
|
+
profiles: [full]
|
|
7
|
+
runtime: false
|
|
7
8
|
origin: ai-hub
|
|
8
9
|
---
|
|
9
10
|
|
|
@@ -3,7 +3,8 @@ name: ship
|
|
|
3
3
|
description: "Use when a verified, review-approved branch has to land — the close of the ai-hub Spec-Kit chain: safety checks, then three landing options (merge, PR, park/discard), authorship always Daner Alejandro Salazar Colorado and never an AI trailer. NOT running the gates (that is `verify`), NOT reading the diff for defects (that is `review`), NOT shipping to a server (that is `deployment`)."
|
|
4
4
|
tags: [sdd, ship, release, pr]
|
|
5
5
|
recommends: []
|
|
6
|
-
profiles: [
|
|
6
|
+
profiles: [full]
|
|
7
|
+
runtime: false
|
|
7
8
|
origin: ai-hub
|
|
8
9
|
---
|
|
9
10
|
|
|
@@ -3,7 +3,8 @@ name: specify
|
|
|
3
3
|
description: "Use when a feature, change, or product idea is still fuzzy and must become an approved WHAT/WHY spec before any planning or code — the brainstorming front door of SDD. Turns a one-line intent into problem, goals, users, scope, behaviour and acceptance criteria, via frontier-round dialogue and 2-3 approaches with a recommendation, carrying zero implementation detail. Fires whenever someone jumps to HOW before WHAT is agreed, in any language. NOT the technical plan (that is `plan`), NOT the de-risking ambiguity sweep (that is `clarify`), NOT project-wide principles (that is `constitution`)."
|
|
4
4
|
tags: [sdd, spec, requirements]
|
|
5
5
|
recommends: [clarify, plan]
|
|
6
|
-
profiles: [
|
|
6
|
+
profiles: [full]
|
|
7
|
+
runtime: false
|
|
7
8
|
origin: ai-hub
|
|
8
9
|
---
|
|
9
10
|
|
|
@@ -3,7 +3,8 @@ name: tasks
|
|
|
3
3
|
description: "Use when an approved plan needs slicing into an ordered task list before any code — the SDD `tasks` phase. Each row carries a literal done-check, dependencies, a parallel-safe marker and a spec trace, appended to the plan artifact. NOT writing the plan (that is `plan`), NOT the consistency gate (that is `analyze`), NOT executing the tasks (that is `implement`)."
|
|
4
4
|
tags: [sdd, tasks, breakdown]
|
|
5
5
|
recommends: [analyze, implement]
|
|
6
|
-
profiles: [
|
|
6
|
+
profiles: [full]
|
|
7
|
+
runtime: false
|
|
7
8
|
origin: ai-hub
|
|
8
9
|
---
|
|
9
10
|
|
|
@@ -3,7 +3,8 @@ name: verify
|
|
|
3
3
|
description: "Use when implementation is finished and about to be called done or merged — the ai-hub Spec-Kit evidence gate: runs the stack's scripts/verify.sh (lint, type, test, audit), walks every task done-check and acceptance criterion, records a dated verdict. NOT judging the diff by eye (that is `review`, spec-less `code-review`), NOT diagnosis (that is `debug`)."
|
|
4
4
|
tags: [sdd, verify, test]
|
|
5
5
|
recommends: [review]
|
|
6
|
-
profiles: [
|
|
6
|
+
profiles: [full]
|
|
7
|
+
runtime: false
|
|
7
8
|
origin: ai-hub
|
|
8
9
|
---
|
|
9
10
|
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: speckit-analyze
|
|
3
|
-
description: Check consistency, coverage and traceability across spec, plan, checklist and tasks before implementation. Use after speckit-tasks.
|
|
4
|
-
license: MIT
|
|
5
|
-
compatibility: Requires the Spec Kit layout under .specify/ and specs/.
|
|
6
|
-
metadata:
|
|
7
|
-
author: onna
|
|
8
|
-
version: "1.0"
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
Find contradictions before code makes them expensive.
|
|
12
|
-
|
|
13
|
-
**Input**: `spec.md`, `plan.md`, `checklist.md` and `tasks.md` for the same feature.
|
|
14
|
-
|
|
15
|
-
**Steps**
|
|
16
|
-
|
|
17
|
-
1. Build a matrix: requirement → plan component → checklist gate → task.
|
|
18
|
-
2. Report every gap, orphan and contradiction in `analysis.md`:
|
|
19
|
-
- `## Cobertura` — requirements without a task or test.
|
|
20
|
-
- `## Contradicciones` — spec vs plan vs checklist.
|
|
21
|
-
- `## Duplicados` — tasks or components that solve the same thing.
|
|
22
|
-
- `## Ambigüedades` — language that still admits two implementations.
|
|
23
|
-
- `## Veredicto` — `PASS` or `NEEDS_FIX` with the exact artifact to edit.
|
|
24
|
-
3. Fix nothing in this phase; return findings to the owning artifact.
|
|
25
|
-
|
|
26
|
-
**Artifacts**: `specs/<feature>/analysis.md`
|
|
27
|
-
|
|
28
|
-
**Exit states**
|
|
29
|
-
- `PASS` — full coverage and no contradiction.
|
|
30
|
-
- `NEEDS_FIX` — at least one gap or contradiction; name the artifact.
|
|
31
|
-
|
|
32
|
-
**Guardrails**
|
|
33
|
-
- Never edit the spec or plan from this skill.
|
|
34
|
-
- A requirement covered only by a "misc" task is not covered.
|
|
35
|
-
- Do not silence a finding because implementation is already underway.
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: speckit-assess-decide
|
|
3
|
-
description: Score the assessment and produce a GO, KILL or NEEDS_CLARIFICATION decision. Use when intake, research, problem and concept are complete.
|
|
4
|
-
license: MIT
|
|
5
|
-
compatibility: Requires the Spec Kit layout under `.specify/assessments/`.
|
|
6
|
-
metadata:
|
|
7
|
-
author: onna
|
|
8
|
-
version: "1.0"
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
Close the assessment lane with an explicit, auditable decision.
|
|
12
|
-
|
|
13
|
-
**Input**: `intake.md`, `research.md`, `problem.md` and `concept.md` for the same slug.
|
|
14
|
-
|
|
15
|
-
**Steps**
|
|
16
|
-
|
|
17
|
-
1. Score each dimension from 1 to 5 in `decision.md`:
|
|
18
|
-
- `## Scorecard` — problema, evidencia, impacto, esfuerzo, reversibilidad.
|
|
19
|
-
- `## Decisión` — `GO`, `KILL` or `NEEDS_CLARIFICATION`.
|
|
20
|
-
- `## Justificación` — two paragraphs tied to the scorecard.
|
|
21
|
-
- `## Condiciones` — what must remain true for the decision to hold.
|
|
22
|
-
- `## Siguiente paso` — the exact change name for the feature lane, or the archive path.
|
|
23
|
-
2. Apply the thresholds: `GO` requires evidence >= 3, impacto >= 3 and reversibilidad >= 3.
|
|
24
|
-
3. If the decision is `KILL`, state what would have to change to reopen it.
|
|
25
|
-
4. Hand off to the feature lane only with a human acknowledgment when the issue is `ai::spec-ready`.
|
|
26
|
-
|
|
27
|
-
**Artifacts**: `.specify/assessments/<slug>/decision.md`
|
|
28
|
-
|
|
29
|
-
**Exit states**
|
|
30
|
-
- `GO` — proceed to `/speckit.constitution` and `/speckit.specify`.
|
|
31
|
-
- `KILL` — archive the assessment directory with the decision.
|
|
32
|
-
- `NEEDS_CLARIFICATION` — return to `assess-define` with the open question.
|
|
33
|
-
|
|
34
|
-
**Guardrails**
|
|
35
|
-
- Never approve your own `ai::spec-ready`; the human gate is mandatory.
|
|
36
|
-
- Do not hide a low score behind optimistic prose.
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: speckit-assess-define
|
|
3
|
-
description: Define the problem, users, goals and success metrics of an idea with evidence. Use after assess-research confirmed the assumptions.
|
|
4
|
-
license: MIT
|
|
5
|
-
compatibility: Requires the Spec Kit layout under `.specify/assessments/`.
|
|
6
|
-
metadata:
|
|
7
|
-
author: onna
|
|
8
|
-
version: "1.0"
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
Write the problem definition that the rest of the assessment will be judged against.
|
|
12
|
-
|
|
13
|
-
**Input**: `intake.md` and `research.md` for the same slug.
|
|
14
|
-
|
|
15
|
-
**Steps**
|
|
16
|
-
|
|
17
|
-
1. Write `problem.md`:
|
|
18
|
-
- `## Problema` — one paragraph, present tense, no solution.
|
|
19
|
-
- `## Usuarios` — primary and secondary, with frequency and context.
|
|
20
|
-
- `## Objetivos` — numbered, each measurable.
|
|
21
|
-
- `## No objetivos` — what this change deliberately excludes.
|
|
22
|
-
- `## Métricas` — baseline, target and how each is collected.
|
|
23
|
-
- `## Restricciones` — technical, legal or operational limits found in research.
|
|
24
|
-
2. Check that every objective maps to at least one metric and one user.
|
|
25
|
-
3. Remove adjectives that cannot be measured ("rápido", "fácil", "robusto").
|
|
26
|
-
|
|
27
|
-
**Artifacts**: `.specify/assessments/<slug>/problem.md`
|
|
28
|
-
|
|
29
|
-
**Exit states**
|
|
30
|
-
- `GO` — problem, users, objectives and metrics are complete and consistent.
|
|
31
|
-
- `NEEDS_CLARIFICATION` — an objective has no metric or an affected user is unknown.
|
|
32
|
-
- `KILL` — the problem is real but the cost or constraints make it unviable now.
|
|
33
|
-
|
|
34
|
-
**Guardrails**
|
|
35
|
-
- Do not write requirements, user stories or acceptance criteria yet; that belongs to `spec.md`.
|
|
36
|
-
- Never set a target without a baseline.
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: speckit-assess-intake
|
|
3
|
-
description: Capture and normalize a raw idea before investing in research. Use when an issue or request arrives without a clear problem statement, owner or success signal.
|
|
4
|
-
license: MIT
|
|
5
|
-
compatibility: Requires the Spec Kit layout under `.specify/assessments/`.
|
|
6
|
-
metadata:
|
|
7
|
-
author: onna
|
|
8
|
-
version: "1.0"
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
Capture the idea exactly as it arrived, then normalize it without judging it yet.
|
|
12
|
-
|
|
13
|
-
**Input**: the raw request (issue, message or note) and an optional slug.
|
|
14
|
-
|
|
15
|
-
**Steps**
|
|
16
|
-
|
|
17
|
-
1. Read the request and separate facts from assumptions. Do not research solutions yet.
|
|
18
|
-
2. Assign a kebab-case slug and create `.specify/assessments/<slug>/`.
|
|
19
|
-
3. Write `intake.md` with these headings only:
|
|
20
|
-
- `## Petición original` — verbatim, quoted.
|
|
21
|
-
- `## Problema observado` — one paragraph, no solution language.
|
|
22
|
-
- `## Afectados` — who suffers the problem and how often.
|
|
23
|
-
- `## Señal de éxito` — observable metric or event.
|
|
24
|
-
- `## Supuestos` — numbered, each falsifiable.
|
|
25
|
-
- `## Preguntas abiertas` — numbered, each answerable by research.
|
|
26
|
-
4. Reject ideas that cannot name an affected user or a success signal: record why.
|
|
27
|
-
|
|
28
|
-
**Artifacts**: `.specify/assessments/<slug>/intake.md`
|
|
29
|
-
|
|
30
|
-
**Exit states**
|
|
31
|
-
- `GO` — problem, users and success signal exist; continue to `assess-research`.
|
|
32
|
-
- `NEEDS_CLARIFICATION` — a question blocks research; ask the human and stop.
|
|
33
|
-
- `KILL` — no affected user or no observable outcome; archive with the reason.
|
|
34
|
-
|
|
35
|
-
**Guardrails**
|
|
36
|
-
- Never propose architecture, libraries or estimates in this phase.
|
|
37
|
-
- Never invent quotes, metrics or owners.
|
|
38
|
-
- Keep every assumption falsifiable; vague language such as "mejorar" is not a success signal.
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: speckit-assess-research
|
|
3
|
-
description: Gather evidence for and against an idea before shaping a solution. Use after assess-intake produced a problem statement with falsifiable assumptions.
|
|
4
|
-
license: MIT
|
|
5
|
-
compatibility: Requires the Spec Kit layout under `.specify/assessments/`.
|
|
6
|
-
metadata:
|
|
7
|
-
author: onna
|
|
8
|
-
version: "1.0"
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
Turn the intake assumptions into evidence, not opinions.
|
|
12
|
-
|
|
13
|
-
**Input**: `.specify/assessments/<slug>/intake.md`.
|
|
14
|
-
|
|
15
|
-
**Steps**
|
|
16
|
-
|
|
17
|
-
1. For each assumption, search the repository, the GitLab issues and the public documentation.
|
|
18
|
-
2. Record evidence in `research.md`:
|
|
19
|
-
- `## Evidencia a favor` — claim, source, date and how it was verified.
|
|
20
|
-
- `## Evidencia en contra` — same shape; do not omit inconvenient findings.
|
|
21
|
-
- `## Precedentes` — existing modules or issues that already solved part of this.
|
|
22
|
-
- `## Coste de oportunidad` — what the team stops doing if this proceeds.
|
|
23
|
-
- `## Supuestos refutados` — the intake assumptions that did not survive.
|
|
24
|
-
3. Prefer primary sources (code, API docs, telemetry) over blog posts.
|
|
25
|
-
4. Mark every unverifiable claim as `NO VERIFICADO`; never present it as fact.
|
|
26
|
-
|
|
27
|
-
**Artifacts**: `.specify/assessments/<slug>/research.md`
|
|
28
|
-
|
|
29
|
-
**Exit states**
|
|
30
|
-
- `GO` — at least one assumption confirmed and none refuted fatally.
|
|
31
|
-
- `NEEDS_CLARIFICATION` — the evidence is insufficient and a human can unblock it.
|
|
32
|
-
- `KILL` — the evidence refutes the core problem or a cheaper precedent already exists.
|
|
33
|
-
|
|
34
|
-
**Guardrails**
|
|
35
|
-
- Cite sources with paths or URLs; an uncited claim is not evidence.
|
|
36
|
-
- Do not design the solution, estimate effort or choose libraries.
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: speckit-assess-shape
|
|
3
|
-
description: Compare solution shapes and choose an appetite before committing to a feature specification. Use after assess-define fixed the problem and metrics.
|
|
4
|
-
license: MIT
|
|
5
|
-
compatibility: Requires the Spec Kit layout under `.specify/assessments/`.
|
|
6
|
-
metadata:
|
|
7
|
-
author: onna
|
|
8
|
-
version: "1.0"
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
Explore two or three viable shapes, then choose one to carry into the feature lane.
|
|
12
|
-
|
|
13
|
-
**Input**: `problem.md` and `research.md` for the same slug.
|
|
14
|
-
|
|
15
|
-
**Steps**
|
|
16
|
-
|
|
17
|
-
1. Describe at least two options in `concept.md`:
|
|
18
|
-
- `## Opción A/B/C` — approach, affected modules, data changes, risks.
|
|
19
|
-
- `## Esfuerzo` — appetite in days, not a detailed estimate.
|
|
20
|
-
- `## Coste de mantenimiento` — what the team must keep working.
|
|
21
|
-
- `## Reversibilidad` — how to undo it if the metrics do not move.
|
|
22
|
-
2. Recommend one option and state the trade-off accepted.
|
|
23
|
-
3. Define the smallest version that can validate the main metric.
|
|
24
|
-
4. Record explicitly what is deferred to a later change.
|
|
25
|
-
|
|
26
|
-
**Artifacts**: `.specify/assessments/<slug>/concept.md`
|
|
27
|
-
|
|
28
|
-
**Exit states**
|
|
29
|
-
- `GO` — one option fits the appetite and validates the metric.
|
|
30
|
-
- `NEEDS_CLARIFICATION` — the options differ only in cost and a human must choose.
|
|
31
|
-
- `KILL` — no option fits the appetite or every option is irreversible.
|
|
32
|
-
|
|
33
|
-
**Guardrails**
|
|
34
|
-
- Do not write file-level plans, schemas or code; `design.md` owns that.
|
|
35
|
-
- Never present one option as the only possibility without comparing it.
|
|
36
|
-
- The appetite is a constraint, not a promise: do not expand it silently.
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: speckit-bug-assess
|
|
3
|
-
description: Diagnose a bug without editing code. Use when a defect needs a reproducible root cause before any fix is authorized.
|
|
4
|
-
license: MIT
|
|
5
|
-
compatibility: Requires access to logs, tests and the repository.
|
|
6
|
-
metadata:
|
|
7
|
-
author: onna
|
|
8
|
-
version: "1.0"
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
Produce a diagnosis that another engineer could reproduce.
|
|
12
|
-
|
|
13
|
-
**Input**: the failing report, logs, and the affected route or component.
|
|
14
|
-
|
|
15
|
-
**Steps**
|
|
16
|
-
|
|
17
|
-
1. Reproduce the defect or record why it cannot be reproduced.
|
|
18
|
-
2. Write `assessment.md`:
|
|
19
|
-
- `## Síntoma` — observed vs expected, with the exact request or action.
|
|
20
|
-
- `## Reproducción` — numbered steps and environment.
|
|
21
|
-
- `## Evidencia` — logs, stack traces, failing test names.
|
|
22
|
-
- `## Causa raíz` — the smallest code path or data state that explains it.
|
|
23
|
-
- `## Alcance` — modules affected and modules explicitly not affected.
|
|
24
|
-
- `## Fix propuesto` — approach only, no patch.
|
|
25
|
-
- `## Riesgo de regresión` — tests that must stay green.
|
|
26
|
-
3. Point to file and line for the root cause; if unknown, say `NO DETERMINADA`.
|
|
27
|
-
4. Do not edit source, tests or configuration in this phase.
|
|
28
|
-
|
|
29
|
-
**Artifacts**: `.specify/bugs/<slug>/assessment.md`
|
|
30
|
-
|
|
31
|
-
**Exit states**
|
|
32
|
-
- `ROOT_CAUSE` — diagnosis complete; continue to `bug-fix`.
|
|
33
|
-
- `NEEDS_DATA` — reproduction or evidence is missing; list exactly what is needed.
|
|
34
|
-
|
|
35
|
-
**Guardrails**
|
|
36
|
-
- Never guess a root cause from a stack trace alone.
|
|
37
|
-
- Do not propose a fix that changes architecture; that requires a feature change.
|
|
38
|
-
- Never mark a bug fixed from this phase.
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: speckit-bug-fix
|
|
3
|
-
description: Apply a scoped repair for a diagnosed bug and document the change. Use after speckit-bug-assess produced ROOT_CAUSE.
|
|
4
|
-
license: MIT
|
|
5
|
-
compatibility: Requires a workspace with tests.
|
|
6
|
-
metadata:
|
|
7
|
-
author: onna
|
|
8
|
-
version: "1.0"
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
Fix only what the diagnosis proved, and leave the evidence behind.
|
|
12
|
-
|
|
13
|
-
**Input**: `.specify/bugs/<slug>/assessment.md` with exit state `ROOT_CAUSE`.
|
|
14
|
-
|
|
15
|
-
**Steps**
|
|
16
|
-
|
|
17
|
-
1. Re-read the root cause and the declared scope. If the scope must grow, stop and return to `bug-assess`.
|
|
18
|
-
2. Write the smallest change that removes the cause; do not refactor adjacent code.
|
|
19
|
-
3. Add or update a regression test that fails before the fix and passes after it.
|
|
20
|
-
4. Write `fix.md`:
|
|
21
|
-
- `## Causa corregida` — one sentence tied to the diagnosis.
|
|
22
|
-
- `## Archivos` — path and purpose of every touched file.
|
|
23
|
-
- `## Prueba de regresión` — test name and command.
|
|
24
|
-
- `## Fuera de alcance` — what was deliberately not touched.
|
|
25
|
-
- `## Riesgos` — remaining uncertainty.
|
|
26
|
-
5. Run the narrow test suite and the package typecheck.
|
|
27
|
-
|
|
28
|
-
**Artifacts**: `.specify/bugs/<slug>/fix.md` plus the code and test changes.
|
|
29
|
-
|
|
30
|
-
**Exit states**
|
|
31
|
-
- `FIXED` — regression test green and typecheck clean; continue to `bug-test`.
|
|
32
|
-
- `BLOCKED` — the fix requires a scope or design change; record why and stop.
|
|
33
|
-
|
|
34
|
-
**Guardrails**
|
|
35
|
-
- Never weaken an existing test to make the suite pass.
|
|
36
|
-
- Never include unrelated formatting or dependency updates.
|
|
37
|
-
- No `TODO`, `FIXME` or placeholder code.
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: speckit-bug-test
|
|
3
|
-
description: Verify a bug fix against reproduction, regression and adjacent behavior, then issue a verdict. Use after speckit-bug-fix produced FIXED.
|
|
4
|
-
license: MIT
|
|
5
|
-
compatibility: Requires the project test commands.
|
|
6
|
-
metadata:
|
|
7
|
-
author: onna
|
|
8
|
-
version: "1.0"
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
Independently verify the repair; do not trust the implementer's summary.
|
|
12
|
-
|
|
13
|
-
**Input**: `assessment.md`, `fix.md` and the changed files.
|
|
14
|
-
|
|
15
|
-
**Steps**
|
|
16
|
-
|
|
17
|
-
1. Reproduce the original defect with the pre-fix revision or a fixture that simulates it.
|
|
18
|
-
2. Run the regression test and confirm it fails without the patch and passes with it.
|
|
19
|
-
3. Run the package suite and record the command, duration and result.
|
|
20
|
-
4. Write `test.md`:
|
|
21
|
-
- `## Reproducción original` — pass/fail with evidence.
|
|
22
|
-
- `## Regresión` — test name and result.
|
|
23
|
-
- `## Suite` — command and totals.
|
|
24
|
-
- `## Riesgo residual` — areas not covered.
|
|
25
|
-
- `## Veredicto` — `VERIFIED`, `PARTIAL` or `FAILED`.
|
|
26
|
-
5. If `FAILED`, return to `bug-assess` with the new evidence; do not patch the code here.
|
|
27
|
-
|
|
28
|
-
**Artifacts**: `.specify/bugs/<slug>/test.md`
|
|
29
|
-
|
|
30
|
-
**Exit states**
|
|
31
|
-
- `VERIFIED` — original defect gone, regression test proven, suite green.
|
|
32
|
-
- `PARTIAL` — fix works but evidence or environment is incomplete; list the gap.
|
|
33
|
-
- `FAILED` — the defect persists or a new regression appears; reopen the diagnosis.
|
|
34
|
-
|
|
35
|
-
**Guardrails**
|
|
36
|
-
- Never edit the fix or the tests in this phase.
|
|
37
|
-
- Never issue `VERIFIED` from a skipped or flaky test without saying so.
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: speckit-checklist
|
|
3
|
-
description: Build and run the quality gate for a feature plan before implementation. Use after speckit-plan and before speckit-tasks.
|
|
4
|
-
license: MIT
|
|
5
|
-
compatibility: Requires the Spec Kit layout under .specify/ and specs/.
|
|
6
|
-
metadata:
|
|
7
|
-
author: onna
|
|
8
|
-
version: "1.0"
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
Decide whether the plan is safe to implement.
|
|
12
|
-
|
|
13
|
-
**Input**: `spec.md`, `plan.md` and the project constitution.
|
|
14
|
-
|
|
15
|
-
**Steps**
|
|
16
|
-
|
|
17
|
-
1. Create `checklist.md` with one section per gate:
|
|
18
|
-
- `## Constitución` — every principle checked.
|
|
19
|
-
- `## Cobertura` — every requirement mapped to a component and test.
|
|
20
|
-
- `## Seguridad` — secrets, permissions, input validation, destructive operations.
|
|
21
|
-
- `## Compatibilidad` — platforms, data migration, rollback.
|
|
22
|
-
- `## Observabilidad` — logs, metrics and failure signals.
|
|
23
|
-
2. Mark each item `PASS`, `FAIL` or `N/A` with one line of evidence.
|
|
24
|
-
3. A single `FAIL` blocks implementation; return to `plan` or `specify`.
|
|
25
|
-
|
|
26
|
-
**Artifacts**: `specs/<feature>/checklist.md`
|
|
27
|
-
|
|
28
|
-
**Exit states**
|
|
29
|
-
- `PASS` — no blocking findings.
|
|
30
|
-
- `NEEDS_FIX` — at least one `FAIL`; name the artifact to revise.
|
|
31
|
-
|
|
32
|
-
**Guardrails**
|
|
33
|
-
- Do not mark `PASS` from intention; cite the plan or test that proves it.
|
|
34
|
-
- Do not add new requirements in the checklist.
|
|
35
|
-
- Never waive a security or data-loss finding without a human decision.
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: speckit-clarify
|
|
3
|
-
description: Resolve ambiguities in an existing specification by asking targeted questions and encoding the answers. Use when speckit-specify left open questions or inconsistent requirements.
|
|
4
|
-
license: MIT
|
|
5
|
-
compatibility: Requires the Spec Kit layout under .specify/ and specs/.
|
|
6
|
-
metadata:
|
|
7
|
-
author: onna
|
|
8
|
-
version: "1.0"
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
Turn ambiguity into a decision the implementation can follow.
|
|
12
|
-
|
|
13
|
-
**Input**: `specs/<feature>/spec.md` with open questions or disputed requirements.
|
|
14
|
-
|
|
15
|
-
**Steps**
|
|
16
|
-
|
|
17
|
-
1. List every ambiguity as a question with the requirement it affects.
|
|
18
|
-
2. Ask at most five questions per round, each answerable with a fact or a choice.
|
|
19
|
-
3. For each answer, update the requirement and its scenario; do not append a parallel note.
|
|
20
|
-
4. Record the decision and the discarded alternative in `## Decisiones`.
|
|
21
|
-
5. Remove the resolved question from `## Preguntas abiertas`.
|
|
22
|
-
|
|
23
|
-
**Artifacts**: `specs/<feature>/spec.md`
|
|
24
|
-
|
|
25
|
-
**Exit states**
|
|
26
|
-
- `RESOLVED` — no open questions remain and requirements are consistent.
|
|
27
|
-
- `OPEN` — a question still needs a human decision; list the blocker.
|
|
28
|
-
|
|
29
|
-
**Guardrails**
|
|
30
|
-
- Do not answer a product question on the user's behalf.
|
|
31
|
-
- Do not change scope silently while clarifying; surface any new behavior.
|
|
32
|
-
- Every answer must land in the spec, not only in the conversation.
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: speckit-constitution
|
|
3
|
-
description: Create or update the project constitution that every Spec Kit artifact must obey. Use before specifying a feature, or when the team ratifies a new non-negotiable rule.
|
|
4
|
-
license: MIT
|
|
5
|
-
compatibility: Requires the Spec Kit layout under .specify/.
|
|
6
|
-
metadata:
|
|
7
|
-
author: onna
|
|
8
|
-
version: "1.0"
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
Establish the rules that outrank every feature decision.
|
|
12
|
-
|
|
13
|
-
**Input**: the project's values, non-negotiables and any existing `.specify/memory/constitution.md`.
|
|
14
|
-
|
|
15
|
-
**Steps**
|
|
16
|
-
|
|
17
|
-
1. Read the current constitution and the repository conventions. Do not invent rules the team has not accepted.
|
|
18
|
-
2. Write or update `.specify/memory/constitution.md`:
|
|
19
|
-
- `## Principios` — numbered, each with a one-line rationale.
|
|
20
|
-
- `## Restricciones técnicas` — stack, compatibility, security, data handling.
|
|
21
|
-
- `## Calidad` — test thresholds, review gates, definition of done.
|
|
22
|
-
- `## Gobierno` — who can change the constitution and how.
|
|
23
|
-
3. Mark every principle as `MUST`, `MUST NOT` or `SHOULD`; avoid vague language.
|
|
24
|
-
4. Record the version and the date of ratification.
|
|
25
|
-
|
|
26
|
-
**Artifacts**: `.specify/memory/constitution.md`
|
|
27
|
-
|
|
28
|
-
**Exit states**
|
|
29
|
-
- `CREATED` — first constitution written.
|
|
30
|
-
- `UPDATED` — existing constitution amended with a recorded reason.
|
|
31
|
-
|
|
32
|
-
**Guardrails**
|
|
33
|
-
- Never overwrite a ratified principle without an explicit human decision.
|
|
34
|
-
- Do not encode feature-specific requirements here; those belong to `spec.md`.
|
|
35
|
-
- A constitution change invalidates prior approvals bound to it.
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: speckit-converge
|
|
3
|
-
description: Verify that the implemented codebase satisfies every requirement before archiving the change. Use after speckit-implement reports DONE.
|
|
4
|
-
license: MIT
|
|
5
|
-
compatibility: Requires the Spec Kit layout under .specify/, specs/ and the project test commands.
|
|
6
|
-
metadata:
|
|
7
|
-
author: onna
|
|
8
|
-
version: "1.0"
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
Close the loop between what was specified and what exists.
|
|
12
|
-
|
|
13
|
-
**Input**: `spec.md`, `plan.md`, `tasks.md`, `analysis.md` and the implemented code.
|
|
14
|
-
|
|
15
|
-
**Steps**
|
|
16
|
-
|
|
17
|
-
1. Read every requirement and locate its implementation and test.
|
|
18
|
-
2. Run the full verification commands from the plan and record the result.
|
|
19
|
-
3. Write `convergence.md`:
|
|
20
|
-
- `## Requisito → evidencia` — table with requirement, code path, test.
|
|
21
|
-
- `## Tareas` — every task checked; list any unchecked.
|
|
22
|
-
- `## Deriva` — behavior implemented but not specified.
|
|
23
|
-
- `## Veredicto` — `CONVERGED` or `NEEDS_WORK` with the exact gap.
|
|
24
|
-
4. If `NEEDS_WORK`, return to `implement` or `specify`; do not patch here.
|
|
25
|
-
5. On `CONVERGED`, hand off to the human approval gate and then archive.
|
|
26
|
-
|
|
27
|
-
**Artifacts**: `specs/<feature>/convergence.md`
|
|
28
|
-
|
|
29
|
-
**Exit states**
|
|
30
|
-
- `CONVERGED` — every requirement proven and every task complete.
|
|
31
|
-
- `NEEDS_WORK` — a requirement lacks evidence or unspecced behavior exists.
|
|
32
|
-
|
|
33
|
-
**Guardrails**
|
|
34
|
-
- Never mark `CONVERGED` from a summary; cite code and test output.
|
|
35
|
-
- Never delete or archive the feature while a task is open.
|
|
36
|
-
- Do not rewrite the spec to match the implementation.
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: speckit-implement
|
|
3
|
-
description: Execute the approved task list in an isolated worktree and produce verified code. Use only after analysis passes and a human approved the spec hash.
|
|
4
|
-
license: MIT
|
|
5
|
-
compatibility: Requires the Spec Kit layout under .specify/, specs/ and a Git repository.
|
|
6
|
-
metadata:
|
|
7
|
-
author: onna
|
|
8
|
-
version: "1.0"
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
Implement the tasks exactly as approved, with evidence.
|
|
12
|
-
|
|
13
|
-
**Input**: `specs/<feature>/tasks.md`, `plan.md` and the approved SHA-256 of `spec.md + plan.md + tasks.md`.
|
|
14
|
-
|
|
15
|
-
**Steps**
|
|
16
|
-
|
|
17
|
-
1. Verify the approval hash still matches the three artifacts. If not, stop: the approval is invalid.
|
|
18
|
-
2. Work in the assigned worktree or feature branch. Never implement on the trunk.
|
|
19
|
-
3. For each task in order: make the smallest change, run its verification, and only then mark it `[x]`.
|
|
20
|
-
4. Keep a trace in `.planning/impl_<feature>.md`: task, files, command, result.
|
|
21
|
-
5. If a task needs scope beyond the spec, stop and return to `specify` or `plan`.
|
|
22
|
-
|
|
23
|
-
**Artifacts**: source code, tests, `.planning/impl_<feature>.md` and updated `tasks.md`.
|
|
24
|
-
|
|
25
|
-
**Exit states**
|
|
26
|
-
- `DONE` — every task verified and the full suite is green.
|
|
27
|
-
- `BLOCKED` — a task needs a design or scope decision; record why and stop.
|
|
28
|
-
|
|
29
|
-
**Guardrails**
|
|
30
|
-
- Never weaken a test to pass.
|
|
31
|
-
- Never edit `spec.md`, `plan.md` or `tasks.md` to match what was built.
|
|
32
|
-
- No `TODO`, placeholder or commented-out code.
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: speckit-plan
|
|
3
|
-
description: Produce the technical plan that implements an approved specification. Use after the spec is READY and before writing tasks.
|
|
4
|
-
license: MIT
|
|
5
|
-
compatibility: Requires the Spec Kit layout under .specify/ and specs/.
|
|
6
|
-
metadata:
|
|
7
|
-
author: onna
|
|
8
|
-
version: "1.0"
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
Translate requirements into a design without changing them.
|
|
12
|
-
|
|
13
|
-
**Input**: `specs/<feature>/spec.md` in state `READY` and the project constitution.
|
|
14
|
-
|
|
15
|
-
**Steps**
|
|
16
|
-
|
|
17
|
-
1. Read every requirement and scenario. Map each to a design element.
|
|
18
|
-
2. Write `plan.md`:
|
|
19
|
-
- `## Contexto` — current behavior and constraints.
|
|
20
|
-
- `## Decisiones` — numbered, each with rationale and rejected alternatives.
|
|
21
|
-
- `## Componentes` — modules, responsibilities and data flow.
|
|
22
|
-
- `## Contratos` — APIs, schemas, events and error cases.
|
|
23
|
-
- `## Trazabilidad` — requirement id → component → test.
|
|
24
|
-
- `## Riesgos` — mitigation per risk.
|
|
25
|
-
- `## Migración` — rollout, rollback and compatibility.
|
|
26
|
-
3. Verify every requirement has at least one component and one test.
|
|
27
|
-
4. Keep the plan implementable in one change; split otherwise.
|
|
28
|
-
|
|
29
|
-
**Artifacts**: `specs/<feature>/plan.md`
|
|
30
|
-
|
|
31
|
-
**Exit states**
|
|
32
|
-
- `READY` — every requirement is covered and no design decision is open.
|
|
33
|
-
|
|
34
|
-
**Guardrails**
|
|
35
|
-
- Never add a requirement that the spec does not contain.
|
|
36
|
-
- Do not write task lists here; `tasks.md` owns sequencing.
|
|
37
|
-
- Name the trade-off of every significant decision.
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: speckit-specify
|
|
3
|
-
description: Write the behavioral specification of a feature with EARS requirements and testable scenarios. Use after the constitution and before planning.
|
|
4
|
-
license: MIT
|
|
5
|
-
compatibility: Requires the Spec Kit layout under .specify/ and specs/.
|
|
6
|
-
metadata:
|
|
7
|
-
author: onna
|
|
8
|
-
version: "1.0"
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
Describe what the system must do, not how it will do it.
|
|
12
|
-
|
|
13
|
-
**Input**: the approved assessment or feature request and the project constitution.
|
|
14
|
-
|
|
15
|
-
**Steps**
|
|
16
|
-
|
|
17
|
-
1. Choose a kebab-case feature id and create `specs/<feature>/`.
|
|
18
|
-
2. Write `spec.md`:
|
|
19
|
-
- `## Purpose` — one paragraph, user-visible outcome.
|
|
20
|
-
- `## Requisitos` — EARS statements using `MUST`, `MUST NOT`, `WHEN`, `IF`.
|
|
21
|
-
- `## Escenarios` — one block per requirement with exactly `#### Scenario:` and WHEN/THEN.
|
|
22
|
-
- `## Fuera de alcance` — what this feature deliberately excludes.
|
|
23
|
-
- `## Preguntas abiertas` — numbered; none may remain before approval.
|
|
24
|
-
3. Give every requirement at least one scenario and a stable identifier (`R1`, `R2`, ...).
|
|
25
|
-
4. Keep each requirement to one behavior; split compound requirements.
|
|
26
|
-
|
|
27
|
-
**Artifacts**: `specs/<feature>/spec.md`
|
|
28
|
-
|
|
29
|
-
**Exit states**
|
|
30
|
-
- `DRAFT` — requirements exist but open questions remain.
|
|
31
|
-
- `READY` — no open questions and every requirement has a scenario.
|
|
32
|
-
|
|
33
|
-
**Guardrails**
|
|
34
|
-
- No architecture, library choices or file paths in `spec.md`.
|
|
35
|
-
- Never mark `READY` with an untestable requirement.
|
|
36
|
-
- Do not modify the constitution from this skill.
|