kracked-core 1.1.0 → 1.4.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 +37 -2
- package/bin/kracked-core.mjs +29 -2
- package/package.json +1 -1
- package/src/detect.mjs +34 -12
- package/src/prompt.mjs +110 -6
- package/src/scaffold.mjs +92 -19
- package/src/uninstall.mjs +214 -0
- package/src/update.mjs +150 -0
- package/src/wizard.mjs +77 -4
- package/templates/loaders/AGENTS.md +1 -0
- package/templates/loaders/CLAUDE.md +1 -0
- package/templates/loaders/antigravity-rules.md +1 -0
- package/templates/project/sdd/README.md +46 -0
- package/templates/project/sdd/architecture/.gitkeep +0 -0
- package/templates/project/sdd/architecture/_TEMPLATE.md +51 -0
- package/templates/project/sdd/architecture/decisions/_TEMPLATE.md +40 -0
- package/templates/project/sdd/epics/.gitkeep +0 -0
- package/templates/project/sdd/epics/_TEMPLATE.md +34 -0
- package/templates/project/sdd/specs/_TEMPLATE.md +44 -0
- package/templates/project/sdd/stories/.gitkeep +0 -0
- package/templates/project/sdd/stories/_TEMPLATE.md +33 -0
- package/templates/skills/kracked-boot/SKILL.md +1 -0
- package/templates/skills/kracked-sdd/SKILL.md +36 -1
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# Epic <N> — <name>
|
|
2
|
+
|
|
3
|
+
**Spec:** `../specs/<name>.md`
|
|
4
|
+
**Status:** planning | in-progress | done
|
|
5
|
+
**Date:** {{DATE}}
|
|
6
|
+
|
|
7
|
+
## Goal
|
|
8
|
+
|
|
9
|
+
What is true when this whole epic is finished? One or two sentences.
|
|
10
|
+
|
|
11
|
+
## Stories
|
|
12
|
+
|
|
13
|
+
Every story must be **independently shippable** — mergeable on its own, leaving the app working.
|
|
14
|
+
If a story can't ship alone, split it.
|
|
15
|
+
|
|
16
|
+
| ID | Story | File |
|
|
17
|
+
|---|---|---|
|
|
18
|
+
| <N>.1 | | `../stories/<N>.1-<slug>.md` |
|
|
19
|
+
| <N>.2 | | `../stories/<N>.2-<slug>.md` |
|
|
20
|
+
|
|
21
|
+
Status lives in `../tracker.md`, not here. One source of truth — don't track status in two places
|
|
22
|
+
or they drift.
|
|
23
|
+
|
|
24
|
+
## Order
|
|
25
|
+
|
|
26
|
+
Which stories block others, and why. If they're all independent, say so explicitly.
|
|
27
|
+
|
|
28
|
+
1. ...
|
|
29
|
+
|
|
30
|
+
## Out of scope
|
|
31
|
+
|
|
32
|
+
What belongs to a future epic, not this one.
|
|
33
|
+
|
|
34
|
+
- ...
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# Spec — <name>
|
|
2
|
+
|
|
3
|
+
**Status:** draft | agreed | building | shipped
|
|
4
|
+
**Date:** {{DATE}}
|
|
5
|
+
|
|
6
|
+
## What
|
|
7
|
+
|
|
8
|
+
One paragraph. What is being built, in plain language — no implementation detail.
|
|
9
|
+
|
|
10
|
+
## Why
|
|
11
|
+
|
|
12
|
+
The problem this solves, and for whom. If you can't name who is worse off without it, the spec
|
|
13
|
+
isn't ready.
|
|
14
|
+
|
|
15
|
+
## Acceptance criteria
|
|
16
|
+
|
|
17
|
+
Concrete and checkable. Someone else must be able to read these and tell whether the thing works.
|
|
18
|
+
|
|
19
|
+
- [ ] A user can ...
|
|
20
|
+
- [ ] When X happens, the system ...
|
|
21
|
+
- [ ] If the input is empty/invalid, it ...
|
|
22
|
+
|
|
23
|
+
## Out of scope
|
|
24
|
+
|
|
25
|
+
**Not optional.** Scope creep starts exactly where this section is skipped. List what this spec
|
|
26
|
+
deliberately does NOT cover.
|
|
27
|
+
|
|
28
|
+
- ...
|
|
29
|
+
|
|
30
|
+
## Edge cases
|
|
31
|
+
|
|
32
|
+
For every input involved, answer: what if it's empty, missing, or unexpected?
|
|
33
|
+
|
|
34
|
+
| Case | Expected behaviour |
|
|
35
|
+
|---|---|
|
|
36
|
+
| Empty input | |
|
|
37
|
+
| Already exists | |
|
|
38
|
+
| Not authorised | |
|
|
39
|
+
|
|
40
|
+
## Open questions
|
|
41
|
+
|
|
42
|
+
Things that must be answered before or during the build. Delete this section once it's empty.
|
|
43
|
+
|
|
44
|
+
- [ ] ...
|
|
File without changes
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# Story <N>.<M> — <name>
|
|
2
|
+
|
|
3
|
+
**Epic:** `../epics/<N>-<slug>.md`
|
|
4
|
+
**Status:** backlog | in-progress | review | done ← mirror this in `../tracker.md`
|
|
5
|
+
**Date:** {{DATE}}
|
|
6
|
+
|
|
7
|
+
## What
|
|
8
|
+
|
|
9
|
+
One slice of the epic. Small enough to build and verify in one sitting.
|
|
10
|
+
|
|
11
|
+
## Acceptance criteria
|
|
12
|
+
|
|
13
|
+
- [ ] ...
|
|
14
|
+
- [ ] ...
|
|
15
|
+
|
|
16
|
+
## Notes for the build
|
|
17
|
+
|
|
18
|
+
Files likely to change, existing code to reuse, anything that would trip someone up.
|
|
19
|
+
|
|
20
|
+
> Verify these claims before building on them. A story written from memory can name a file,
|
|
21
|
+
> function, or column that doesn't exist — grep first, then build.
|
|
22
|
+
|
|
23
|
+
- ...
|
|
24
|
+
|
|
25
|
+
## Evidence
|
|
26
|
+
|
|
27
|
+
**Fill this in before marking `done`.** Copy the summary line into `tracker.md`.
|
|
28
|
+
|
|
29
|
+
- **Verified:** what you actually ran or checked, and what you saw
|
|
30
|
+
- **Not verified:** what you did NOT check — untested paths, edge cases, anything left open
|
|
31
|
+
|
|
32
|
+
A story marked `done` with an empty Evidence section is worse than one left at `review`: it hides
|
|
33
|
+
risk instead of surfacing it.
|
|
@@ -43,6 +43,7 @@ If the current directory has a `.kracked/` folder, read:
|
|
|
43
43
|
1. `.kracked/project.md` — what this project is (stack, conventions)
|
|
44
44
|
2. `.kracked/session.md` — working memory: state + next steps
|
|
45
45
|
3. `.kracked/decisions.md` — why things are the way they are
|
|
46
|
+
4. `.kracked/sdd/tracker.md` — story status, if this project uses SDD (skip if absent)
|
|
46
47
|
|
|
47
48
|
If there is no `.kracked/` folder here, this is a project that hasn't been set up yet. Say so
|
|
48
49
|
plainly and suggest `npx kracked-core init` if the user wants project memory for it. Continue
|
|
@@ -27,24 +27,59 @@ Classify before doing any ceremony. Say the classification out loud in one line,
|
|
|
27
27
|
Over-ceremony on a small task is a failure mode, not thoroughness. Do not write a spec file for a
|
|
28
28
|
typo fix.
|
|
29
29
|
|
|
30
|
+
## Where documents live
|
|
31
|
+
|
|
32
|
+
Copy the matching `_TEMPLATE.md` in each folder rather than inventing a structure.
|
|
33
|
+
|
|
34
|
+
| Folder | Holds |
|
|
35
|
+
|---|---|
|
|
36
|
+
| `.kracked/sdd/specs/` | What to build and why |
|
|
37
|
+
| `.kracked/sdd/epics/` | A group of related stories |
|
|
38
|
+
| `.kracked/sdd/stories/` | One independently shippable slice |
|
|
39
|
+
| `.kracked/sdd/architecture/` | How it's put together — large/risky work only |
|
|
40
|
+
| `.kracked/sdd/architecture/decisions/` | ADRs, numbered `0001-`, never renumbered |
|
|
41
|
+
| `.kracked/sdd/tracker.md` | Status + evidence for every story |
|
|
42
|
+
|
|
43
|
+
Naming: `specs/login.md`, `epics/1-authentication.md`, `stories/1.1-email-login.md`. Story IDs are
|
|
44
|
+
`<epic>.<story>` and MUST match the ID in `tracker.md` — that link is what makes the tracker
|
|
45
|
+
trustworthy.
|
|
46
|
+
|
|
30
47
|
## 2. Spec stage
|
|
31
48
|
|
|
32
|
-
|
|
49
|
+
Copy `.kracked/sdd/specs/_TEMPLATE.md` to `.kracked/sdd/specs/<short-name>.md` and fill it in:
|
|
33
50
|
|
|
34
51
|
- **What** — the feature or change, in plain language
|
|
35
52
|
- **Why** — the problem it solves, for whom
|
|
36
53
|
- **Acceptance criteria** — concrete, checkable conditions for "this works"
|
|
37
54
|
- **Out of scope** — explicitly list what this spec does NOT cover. This is not optional; scope
|
|
38
55
|
creep starts where this section is skipped.
|
|
56
|
+
- **Edge cases** — for every input: what if it's empty, missing, or unexpected?
|
|
39
57
|
|
|
40
58
|
Confirm the spec with the user before moving on, unless the request was classified trivial/small
|
|
41
59
|
and the spec is short enough that building it IS the confirmation.
|
|
42
60
|
|
|
61
|
+
## 2b. Architecture — only when the work is large or risky
|
|
62
|
+
|
|
63
|
+
If the job is **large or risky** (new service, data model change, auth, payments, anything
|
|
64
|
+
touching money or user data), write an architecture doc from
|
|
65
|
+
`.kracked/sdd/architecture/_TEMPLATE.md` BEFORE building — the shape, the data model, and the
|
|
66
|
+
failure modes.
|
|
67
|
+
|
|
68
|
+
For a decision someone would otherwise re-litigate later (why this database, why this pattern),
|
|
69
|
+
add a numbered ADR from `architecture/decisions/_TEMPLATE.md`.
|
|
70
|
+
|
|
71
|
+
**Do not write either for a small feature.** Ceremony on small work is why people abandon a
|
|
72
|
+
process. Say plainly which you're writing and why, or say you're skipping them and why.
|
|
73
|
+
|
|
43
74
|
## 3. Docs stage
|
|
44
75
|
|
|
45
76
|
Break the spec into stories. Each story must be independently shippable — a story that can't be
|
|
46
77
|
merged and left in a working state on its own is too big; split it further.
|
|
47
78
|
|
|
79
|
+
If there's more than one story, write an epic from `.kracked/sdd/epics/_TEMPLATE.md` and give each
|
|
80
|
+
story its own file from `.kracked/sdd/stories/_TEMPLATE.md`. A single-story job needs neither —
|
|
81
|
+
the spec is enough.
|
|
82
|
+
|
|
48
83
|
Add every story to `.kracked/sdd/tracker.md` with status `backlog`. Use this exact table shape —
|
|
49
84
|
do not invent columns:
|
|
50
85
|
|