@haposoft/cafekit 0.8.4 → 0.8.5
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/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@haposoft/cafekit",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.5",
|
|
4
4
|
"description": "Claude Code-first spec-driven workflow for AI coding assistants. Bundles CafeKit hapo: skills, runtime hooks, agents, and installer scaffolding.",
|
|
5
5
|
"author": "Haposoft <nghialt@haposoft.com>",
|
|
6
6
|
"license": "MIT",
|
|
@@ -152,12 +152,13 @@ Before marking the spec ready:
|
|
|
152
152
|
3. Fail if any on-disk task file is missing from `task_files`
|
|
153
153
|
4. Fail if any path in `task_files` does not exist
|
|
154
154
|
5. Fail if any on-disk task file is missing from `task_registry` or any registry path does not exist
|
|
155
|
-
6.
|
|
156
|
-
7.
|
|
157
|
-
8.
|
|
158
|
-
9.
|
|
159
|
-
10.
|
|
160
|
-
11.
|
|
155
|
+
6. Fail if any task file path does not match `tasks/task-R{N}-{SEQ}-<slug>.md` with two-digit `SEQ` (for example `tasks/task-R0-01-project-scaffolding.md`)
|
|
156
|
+
7. Infer `design_context.validation_recommended = true` for auth, privacy, delete-data, migration, schema-change, browser-extension-permission, external-provider, or 5+ task file specs
|
|
157
|
+
8. If the spec scope switched away from Claude/Anthropic, fail if `requirements.md`, `design.md`, or `tasks/*.md` still contain stale provider strings like `Claude API`, `Haiku`, or `haiku_reachable`. `research.md` may mention old providers only as historical comparison.
|
|
158
|
+
9. For delete/privacy specs, fail if requirements/design/tasks mix multiple deletion policies (for example `email_hash` in one place and `deleted-<uuid>` in another) without one canonical design decision.
|
|
159
|
+
10. If `validation_recommended = true` and validation has not completed (or the user did not explicitly accept risk), keep `ready_for_implementation = false`
|
|
160
|
+
11. Reject task files that use legacy non-numeric mappings like `NFR-1`
|
|
161
|
+
12. If validation decisions were accepted, fail unless they are reflected in implementation-facing sections of affected artifacts and `spec.json.updated_at` / review timestamps reflect the reviewed state
|
|
161
162
|
|
|
162
163
|
## Execution Workflow Summary
|
|
163
164
|
|
|
@@ -330,6 +330,7 @@ Load: `references/review.md` + `rules/design-review.md`
|
|
|
330
330
|
- FAIL if any path in `task_files` does not exist on disk
|
|
331
331
|
- FAIL if any task file exists on disk but is missing from `task_registry`
|
|
332
332
|
- FAIL if any path in `task_registry` does not exist on disk
|
|
333
|
+
- FAIL if any task file path does not match `tasks/task-R{N}-{SEQ}-<slug>.md` with two-digit `SEQ` (for example `tasks/task-R0-01-project-scaffolding.md`)
|
|
333
334
|
- FAIL if a newly generated non-trivial spec lacks a `research.md` Evidence Summary with codebase scout result, external research result or skip rationale, selected decision, rejected alternatives, and downstream task/test implications.
|
|
334
335
|
- FAIL if any requirement or NFR mapping uses non-numeric labels (`NFR-1`, `SEC-1`, etc.)
|
|
335
336
|
- FAIL if a task lacks `Completion Criteria` or `Task Test Plan & Verification Evidence` (legacy `Verification & Evidence` is accepted only for pre-existing task files)
|
|
@@ -390,6 +391,7 @@ When user calls `hapo:specs`, system checks `specs/`:
|
|
|
390
391
|
- When running a **single phase**: set `generated = true` but leave `approved = false` — user must explicitly approve before continuing.
|
|
391
392
|
|
|
392
393
|
**Task inventory:** `task_files` MUST be present and MUST list every real task file exactly once using relative paths like `tasks/task-R1-01-example.md`.
|
|
394
|
+
Task paths that omit the `task-` prefix or use non-padded sequence numbers (for example `tasks/R1-1-example.md`) are invalid for new CafeKit specs.
|
|
393
395
|
|
|
394
396
|
**Task machine-state:** `task_registry` MUST be present after Step 7. Each key is a relative task path, and each value MUST contain `id`, `title`, `status`, `dependencies`, `blocker`, `started_at`, `completed_at`, and `last_updated_at`.
|
|
395
397
|
|
|
@@ -43,6 +43,8 @@ These rules override any self-reasoning or optimization the system may attempt:
|
|
|
43
43
|
5. **No false completion.** You MUST NOT set `validation.status = "completed"` or `ready_for_implementation = true` until a reconciliation audit proves the accepted findings and validation decisions are reflected in the physical spec artifacts.
|
|
44
44
|
6. **Provider drift is a real defect.** If the scope changed away from Claude/Anthropic, stale strings like `Claude API`, `Haiku`, or `haiku_reachable` in `requirements.md`, `design.md`, or `tasks/*.md` are validation failures. `research.md` may mention them only as historical comparison.
|
|
45
45
|
7. **Implementation-facing propagation is mandatory.** A decision that affects implementation is NOT considered applied if it only appears in `Risk Assessment`, `validate-log.md`, or `red-team-report.md`. It must update at least one of: `requirements.md`, `Canonical Contracts & Invariants`, `Objective`, `Constraints`, `Implementation Steps`, `Completion Criteria`, or `Task Test Plan & Verification Evidence`.
|
|
46
|
+
8. **CafeKit command dialect only.** Validation output MUST use `/hapo:develop <feature>` as the implementation handoff. Never mention `/sdd:execute-spec`, `/sdd:*`, `/work`, `/code`, or non-CafeKit aliases.
|
|
47
|
+
9. **CafeKit task filename convention only.** Task files MUST use `tasks/task-R{N}-{SEQ}-<slug>.md` with two-digit `SEQ` (for example `tasks/task-R0-01-project-scaffolding.md`). Files like `tasks/R0-1-project-scaffolding.md` are legacy/foreign format; rename them and update `spec.json.task_files`, `spec.json.task_registry`, and dependency references before passing validation.
|
|
46
48
|
|
|
47
49
|
---
|
|
48
50
|
|
|
@@ -228,6 +230,8 @@ Before declaring validation complete:
|
|
|
228
230
|
- a report says "applied" but the file still contains the old text
|
|
229
231
|
- stale provider strings remain after a provider change
|
|
230
232
|
- delete-data/privacy artifacts mix multiple canonical policies
|
|
233
|
+
- any task path fails the CafeKit `tasks/task-R{N}-{SEQ}-<slug>.md` naming convention
|
|
234
|
+
- any output or report suggests `/sdd:execute-spec`, `/sdd:*`, `/work`, `/code`, or any non-CafeKit implementation command
|
|
231
235
|
- `spec.json.updated_at`, `timestamps.review_done`, or `timestamps.validation_done` do not reflect the final reviewed state
|
|
232
236
|
4. Only after the audit passes may you:
|
|
233
237
|
- set `spec.json.validation.status = "completed"`
|