archik 0.12.34 → 0.12.36
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/.claude/commands/archik/actor.md +89 -0
- package/.claude/commands/archik/alpha.md +71 -0
- package/.claude/commands/archik/trace.md +55 -0
- package/.claude/commands/archik/usecase.md +134 -0
- package/README.md +60 -3
- package/dist/cli/archik.mjs +1 -1
- package/dist/ui/assets/index-CVU04BKZ.css +1 -0
- package/dist/ui/assets/{index-DTIN4vQr.js → index-Cpn7arl2.js} +144 -144
- package/dist/ui/index.html +2 -2
- package/package.json +1 -1
- package/dist/ui/assets/index-Okbzz010.css +0 -1
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Add or update an actor in the actor index
|
|
3
|
+
argument-hint: <actor id> [— description]
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /archik:actor — author an entry in `*.archik.actors.yaml`
|
|
7
|
+
|
|
8
|
+
The user wants you to add (or update) an actor in the project's actor
|
|
9
|
+
index. Actors are *who* initiates use cases — humans (end users,
|
|
10
|
+
operators, customers) or non-human systems (other services, schedulers,
|
|
11
|
+
external APIs). The user-facing description is:
|
|
12
|
+
|
|
13
|
+
**$ARGUMENTS**
|
|
14
|
+
|
|
15
|
+
This slash command IS the user's confirmation. Skip "want me to add
|
|
16
|
+
this?" and produce the change now.
|
|
17
|
+
|
|
18
|
+
## Direct-write — not the sidecar workflow
|
|
19
|
+
|
|
20
|
+
Actors live in `.archik/actors.archik.actors.yaml` (one file per
|
|
21
|
+
project, conventionally). Authored with `Write` / `Edit` directly,
|
|
22
|
+
then validated via `npx archik validate`.
|
|
23
|
+
|
|
24
|
+
## Steps
|
|
25
|
+
|
|
26
|
+
0. **Frame.** Restate the user's intent in one sentence and ask 1–2
|
|
27
|
+
sharp questions only if any of these are unclear:
|
|
28
|
+
- **Actor kind** — `human` (end user / operator / customer),
|
|
29
|
+
`external-system` (third-party service we don't own),
|
|
30
|
+
`time` (scheduler / cron), or `device` (sensor / hardware)?
|
|
31
|
+
- **Goals** — one short sentence per goal the actor pursues
|
|
32
|
+
against this system. Optional but useful.
|
|
33
|
+
|
|
34
|
+
Skip questions `$ARGUMENTS` already answers.
|
|
35
|
+
|
|
36
|
+
1. **Ground in current actors:**
|
|
37
|
+
```
|
|
38
|
+
npx archik q actors
|
|
39
|
+
```
|
|
40
|
+
If the id already exists, this is an UPDATE — read the existing
|
|
41
|
+
entry's fields and preserve everything the user didn't ask to
|
|
42
|
+
change. Otherwise it's a NEW addition.
|
|
43
|
+
|
|
44
|
+
2. **Lock in the schema:**
|
|
45
|
+
```
|
|
46
|
+
npx archik schema actors
|
|
47
|
+
```
|
|
48
|
+
Required: `id`, `kind`, `description`. Optional: `goals`.
|
|
49
|
+
|
|
50
|
+
3. **Edit the file.** If `.archik/actors.archik.actors.yaml` doesn't
|
|
51
|
+
exist yet, `Write` a new file with the standard header. If it
|
|
52
|
+
exists, `Edit` to add/update the one actor you're touching — do
|
|
53
|
+
NOT rewrite the whole file unless you're consolidating.
|
|
54
|
+
|
|
55
|
+
```yaml
|
|
56
|
+
version: "1.0"
|
|
57
|
+
actors:
|
|
58
|
+
- id: <kebab-id>
|
|
59
|
+
kind: human # human | external-system | time | device
|
|
60
|
+
description: One sentence — who they are and why they touch the system.
|
|
61
|
+
goals:
|
|
62
|
+
- "Verb-first short outcome they pursue."
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
4. **Validate:**
|
|
66
|
+
```
|
|
67
|
+
npx archik validate
|
|
68
|
+
```
|
|
69
|
+
Common failures:
|
|
70
|
+
- Duplicate `id` across actor files
|
|
71
|
+
- Missing `description` (required, non-empty)
|
|
72
|
+
- `kind` not in the allowed enum
|
|
73
|
+
|
|
74
|
+
5. **Confirm inline.** Print the actor's id, kind, and description.
|
|
75
|
+
Ask: "Looks right? Want me to author a use case (`/archik:usecase`)
|
|
76
|
+
that has this actor as `primaryActor`?"
|
|
77
|
+
|
|
78
|
+
Don't auto-proceed. Inline-review gate.
|
|
79
|
+
|
|
80
|
+
## Notes
|
|
81
|
+
|
|
82
|
+
- Actors must exist BEFORE any use case can reference them. The
|
|
83
|
+
use case validator rejects dangling `primaryActor` / `secondaryActors`
|
|
84
|
+
references with the actor id named in the error.
|
|
85
|
+
- The `external` node kind in the structural model is for third-party
|
|
86
|
+
systems that participate in the *runtime* graph. The `external-system`
|
|
87
|
+
actor kind is for systems that *initiate* use cases. They overlap
|
|
88
|
+
conceptually but live in different files — actor file for "who acts
|
|
89
|
+
on us", structural file for "what we integrate with".
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Show alpha state snapshot, or promote one with criteria check
|
|
3
|
+
argument-hint: [show | promote <alpha> <state> | demote <alpha> <state>]
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /archik:alpha — read or move project alphas
|
|
7
|
+
|
|
8
|
+
Alphas (Essence / SEMAT) are the universal progress dials of the
|
|
9
|
+
project. The user wants either a snapshot of all alphas, or a
|
|
10
|
+
deliberate promotion / demotion with the underlying criteria
|
|
11
|
+
verified mechanically. Argument:
|
|
12
|
+
|
|
13
|
+
**$ARGUMENTS**
|
|
14
|
+
|
|
15
|
+
## Branches
|
|
16
|
+
|
|
17
|
+
### No args / `show`
|
|
18
|
+
|
|
19
|
+
Run:
|
|
20
|
+
```
|
|
21
|
+
npx archik alpha show
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
Read the table. For each alpha:
|
|
25
|
+
- `✓` means the claimed state is satisfied by the current artifacts
|
|
26
|
+
- `?` means the state can't be fully verified (manual review needed)
|
|
27
|
+
- `✗ over-claimed` means the artifacts don't meet the criteria —
|
|
28
|
+
surface this as a blocker
|
|
29
|
+
|
|
30
|
+
Translate the table into a short paragraph: which alphas are honest,
|
|
31
|
+
which are over-claimed, and what one concrete next action would
|
|
32
|
+
unblock the most progress (usually whichever alpha is closest to
|
|
33
|
+
its next state and just needs one more artifact).
|
|
34
|
+
|
|
35
|
+
### `promote <alpha> <state>`
|
|
36
|
+
|
|
37
|
+
Run the promotion (it runs the criteria check first and refuses if
|
|
38
|
+
the state isn't satisfied):
|
|
39
|
+
```
|
|
40
|
+
npx archik alpha promote <alpha> <state>
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
If it succeeds, narrate which evidence satisfied the criteria. If it
|
|
44
|
+
refuses, name the specific criterion that failed and the concrete
|
|
45
|
+
artifact that would satisfy it (e.g. "to promote `requirements` to
|
|
46
|
+
`addressed`, every active slice needs `realization.seqFile` — slice
|
|
47
|
+
X currently has none. Author `.archik/X.archik.seq.yaml` with
|
|
48
|
+
`realizes: { useCase, slice }` and re-run.").
|
|
49
|
+
|
|
50
|
+
### `demote <alpha> <state>`
|
|
51
|
+
|
|
52
|
+
```
|
|
53
|
+
npx archik alpha demote <alpha> <state> --note "<reason>"
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
Demotion is a deliberate admission that the project no longer meets
|
|
57
|
+
a previously-claimed state. Always prompt for the `--note` reason if
|
|
58
|
+
the user didn't supply one — the audit trail matters.
|
|
59
|
+
|
|
60
|
+
## Notes
|
|
61
|
+
|
|
62
|
+
- Alphas tracked: `stakeholders`, `requirements`, `softwareSystem`,
|
|
63
|
+
`work` (the four Essence alphas most directly evidenced by archik
|
|
64
|
+
artifacts). State ladders match the Essence kernel — see
|
|
65
|
+
`npx archik alpha show --json` for the full enum.
|
|
66
|
+
- The alpha file lives at `.archik/alphas.archik.alphas.yaml` —
|
|
67
|
+
direct-write only via this command (or the underlying CLI). Don't
|
|
68
|
+
edit it by hand; the criteria check is the discipline.
|
|
69
|
+
- Over-claiming is fixed by EITHER advancing artifacts OR demoting
|
|
70
|
+
the state. Whichever is easier given the project's actual
|
|
71
|
+
trajectory. Don't fudge.
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Show the use case × slice × test × seq × ECB coverage matrix
|
|
3
|
+
argument-hint: [filters — see notes]
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /archik:trace — surface the Jacobson coverage matrix
|
|
7
|
+
|
|
8
|
+
The user wants to see how completely the project's use cases are
|
|
9
|
+
traced — for each slice: are tests declared, is a seq diagram
|
|
10
|
+
realising it, are participants ECB-tagged. Optional filter args:
|
|
11
|
+
|
|
12
|
+
**$ARGUMENTS**
|
|
13
|
+
|
|
14
|
+
## Steps
|
|
15
|
+
|
|
16
|
+
1. Run the trace CLI. If `$ARGUMENTS` is empty, full matrix:
|
|
17
|
+
```
|
|
18
|
+
npx archik trace
|
|
19
|
+
```
|
|
20
|
+
If the user passed a filter (`use-case=<id>`, `actor=<id>`,
|
|
21
|
+
`status=active|proposed|deprecated`, `coverage=full|partial|none`),
|
|
22
|
+
pass it through as a query flag:
|
|
23
|
+
```
|
|
24
|
+
npx archik trace --<filter>=<value>
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
2. **Read the totals row** at the bottom (`X full, Y partial, Z untraced`)
|
|
28
|
+
and surface it in your reply as the headline answer:
|
|
29
|
+
- **All full** → "✓ Every active slice is fully traced. Ready to ship."
|
|
30
|
+
- **Any partial** → "◐ N partial slices — listed below; each is
|
|
31
|
+
missing tests, a realisation seq, or full ECB tagging."
|
|
32
|
+
- **Any untraced** → "○ N untraced slices — these slices declare
|
|
33
|
+
neither tests nor a seq realisation. Address before milestone close."
|
|
34
|
+
|
|
35
|
+
3. **For each partial / untraced row**, narrate ONE concrete next
|
|
36
|
+
action — e.g. "`pubmed-abstract-only` has tests but no seq —
|
|
37
|
+
author `.archik/<slice>.archik.seq.yaml` with `realizes:
|
|
38
|
+
{ useCase: …, slice: pubmed-abstract-only }`".
|
|
39
|
+
Don't dump raw rows; the user can read those in the CLI output if
|
|
40
|
+
they want. Your job is to translate the matrix into actions.
|
|
41
|
+
|
|
42
|
+
4. **If everything is full**, also run `npx archik alpha show` and
|
|
43
|
+
call out any alpha that's now eligible for promotion. The trace
|
|
44
|
+
matrix is a major input to `requirements: addressed` and
|
|
45
|
+
`softwareSystem: ready`.
|
|
46
|
+
|
|
47
|
+
## Notes
|
|
48
|
+
|
|
49
|
+
- The matrix is also visible on screen via the **Use cases** toolbar
|
|
50
|
+
badge (rolled-up, "am I done?" answer) and the dedicated
|
|
51
|
+
`/__archik/usecases` page (per-slice breakdown). Mention this if
|
|
52
|
+
the user wants visual context.
|
|
53
|
+
- The check has CI teeth: `npx archik trace --fail-on partial`
|
|
54
|
+
exits non-zero on any partial; `--fail-on none` exits non-zero on
|
|
55
|
+
untraced only. Suggest the right flag for their CI gate if asked.
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Author a use case (actors + flows + slices + tests)
|
|
3
|
+
argument-hint: <use case name or id>
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /archik:usecase — author a `*.archik.uc.yaml`
|
|
7
|
+
|
|
8
|
+
The user wants you to author a **use case** that captures user-visible
|
|
9
|
+
behaviour as actors + flows + slices, with each active slice backed by
|
|
10
|
+
test paths on disk. The user-facing description is:
|
|
11
|
+
|
|
12
|
+
**$ARGUMENTS**
|
|
13
|
+
|
|
14
|
+
This slash command IS the user's confirmation. Skip "want me to draft
|
|
15
|
+
this?" and produce a use case file now.
|
|
16
|
+
|
|
17
|
+
## Direct-write — not the sidecar workflow
|
|
18
|
+
|
|
19
|
+
Use case files are authored with `Write` directly (unlike structural
|
|
20
|
+
sidecars which go through `suggest set`). After writing, validate via
|
|
21
|
+
`npx archik validate`. If validation fails, fix and re-write.
|
|
22
|
+
|
|
23
|
+
## This is the DESIGN (b) handoff of the engineering loop
|
|
24
|
+
|
|
25
|
+
The skill defines a 5-phase loop: **Discover → Design → Decide → Build
|
|
26
|
+
→ Verify**. This command covers Discover (ground in current actors and
|
|
27
|
+
use cases) and the Design (b) Requirements step. The output is a
|
|
28
|
+
reviewable artifact gated by **inline review** (you show the YAML in
|
|
29
|
+
chat, the user confirms) — *not* the canvas gate (that's only for
|
|
30
|
+
structural sidecars).
|
|
31
|
+
|
|
32
|
+
## Steps
|
|
33
|
+
|
|
34
|
+
0. **Frame + clarify.** Restate the user's intent in one sentence and
|
|
35
|
+
ask 1–3 sharp clarifying questions if any of these are ambiguous in
|
|
36
|
+
`$ARGUMENTS`:
|
|
37
|
+
- **Primary actor** — who initiates this use case? (Will need to
|
|
38
|
+
resolve in the actor index — check step 1 first.)
|
|
39
|
+
- **Goal** — what does the actor want to accomplish in business
|
|
40
|
+
terms (one sentence, observable outcome)?
|
|
41
|
+
- **Pre / postconditions** — what must be true before/after? (Skip
|
|
42
|
+
if obvious.)
|
|
43
|
+
- **Slice scope** — happy path only, or also one or two alternates
|
|
44
|
+
(e.g. payment-declined, validation-failed, retry)? Each slice =
|
|
45
|
+
one flow subset + one test path.
|
|
46
|
+
|
|
47
|
+
Skip questions `$ARGUMENTS` already answers. **Use judgment.**
|
|
48
|
+
|
|
49
|
+
1. **Ground in the current models.** Check who the actors are and
|
|
50
|
+
what use cases exist already so you reuse rather than duplicate:
|
|
51
|
+
```
|
|
52
|
+
npx archik q actors
|
|
53
|
+
npx archik q usecases
|
|
54
|
+
```
|
|
55
|
+
If the primary actor isn't in the actor index, STOP and tell the
|
|
56
|
+
user — they need `/archik:actor <id>` first (or you offer to run
|
|
57
|
+
it). Use cases without resolving actors fail validation.
|
|
58
|
+
|
|
59
|
+
2. **Lock in the schema:**
|
|
60
|
+
```
|
|
61
|
+
npx archik schema uc
|
|
62
|
+
```
|
|
63
|
+
Required fields: `id`, `name`, `primaryActor`, `goal`, `flows.basic`,
|
|
64
|
+
at least one slice with `id`, `description`, `flows`, `tests`.
|
|
65
|
+
Optional: `secondaryActors`, `preconditions`, `postconditions`,
|
|
66
|
+
alternate flows, slice realization (`seqFile`).
|
|
67
|
+
|
|
68
|
+
3. **Write the file** to `.archik/usecases/<id>.archik.uc.yaml`. Use
|
|
69
|
+
the `Write` tool — direct-write, no sidecar.
|
|
70
|
+
|
|
71
|
+
**Slice test paths must exist on disk** for `status: active` slices.
|
|
72
|
+
Validator rejects active slices whose test files are missing. If
|
|
73
|
+
the test isn't written yet, mark the slice `status: proposed` —
|
|
74
|
+
you'll flip it to `active` once the test lands in the BUILD phase.
|
|
75
|
+
|
|
76
|
+
```yaml
|
|
77
|
+
version: "1.0"
|
|
78
|
+
id: <kebab-id>
|
|
79
|
+
name: <Human-readable name>
|
|
80
|
+
primaryActor: <actor-id> # must resolve in actors index
|
|
81
|
+
goal: One sentence describing the observable outcome.
|
|
82
|
+
preconditions: [<…optional…>]
|
|
83
|
+
postconditions: [<…optional…>]
|
|
84
|
+
flows:
|
|
85
|
+
basic:
|
|
86
|
+
steps:
|
|
87
|
+
- "Actor does X."
|
|
88
|
+
- "System does Y."
|
|
89
|
+
- "Actor receives Z."
|
|
90
|
+
alternates:
|
|
91
|
+
- id: <kebab-id>
|
|
92
|
+
branchFrom: basic.<step-number>
|
|
93
|
+
steps: ["…"]
|
|
94
|
+
slices:
|
|
95
|
+
- id: happy
|
|
96
|
+
description: One-line slice summary.
|
|
97
|
+
flows: [basic]
|
|
98
|
+
tests: [<path/to/test/file.spec.ts>] # must exist OR slice must be `status: proposed`
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
4. **Validate:**
|
|
102
|
+
```
|
|
103
|
+
npx archik validate
|
|
104
|
+
```
|
|
105
|
+
Expect zero errors. If validation fails, the message names the
|
|
106
|
+
field — fix and re-write. Common failures:
|
|
107
|
+
- `primaryActor` doesn't resolve in actors index → ensure the
|
|
108
|
+
actor file has that id
|
|
109
|
+
- `flows.basic` missing → required by schema
|
|
110
|
+
- `branchFrom` references unknown step → `basic.4` requires
|
|
111
|
+
`flows.basic.steps` to have at least 4 entries
|
|
112
|
+
- Slice tests path doesn't exist → either create the test file
|
|
113
|
+
stub or mark the slice `status: proposed`
|
|
114
|
+
|
|
115
|
+
5. **Show inline + confirm.** Print the file's path and a short
|
|
116
|
+
summary of what it covers (actor / number of flows / slice ids /
|
|
117
|
+
test paths). Ask: "Looks right? Once you confirm, want me to
|
|
118
|
+
stage the structural sidecar (`/archik:suggest`) for the nodes
|
|
119
|
+
this use case implies?"
|
|
120
|
+
|
|
121
|
+
Don't auto-proceed. The user's "looks good" IS the inline-review
|
|
122
|
+
gate.
|
|
123
|
+
|
|
124
|
+
## Notes
|
|
125
|
+
|
|
126
|
+
- If the use case implies new structural nodes (a new service, a new
|
|
127
|
+
external integration), the next step is `/archik:suggest` — that
|
|
128
|
+
gate is separate.
|
|
129
|
+
- If the slice has non-trivial runtime branching, async fan-out, or
|
|
130
|
+
cross-context interaction, plan for a `*.archik.seq.yaml` next that
|
|
131
|
+
carries `realizes: { useCase: <id>, slice: <id> }` and binds
|
|
132
|
+
participants to the structural nodes.
|
|
133
|
+
- Actor must exist BEFORE the use case file is written. Use cases
|
|
134
|
+
reference `primaryActor` by id; the validator rejects dangling refs.
|
package/README.md
CHANGED
|
@@ -102,8 +102,36 @@ No `x` / `y` / `width` — layout is computed by [ELK](https://eclipse.dev/elk/)
|
|
|
102
102
|
- **27 node kinds** across compute, data, messaging, networking, hexagonal, AI/ML, identity, observability, cloud, UI, and external.
|
|
103
103
|
- **12 relationships** with distinct visual styling — `http_call`, `invokes`, `reads`, `writes`, `publishes`, `subscribes`, `streams_to`, `routes_to`, `implements`, `depends_on`, `has_a`, `uses`.
|
|
104
104
|
- **Drag-to-connect, multi-select, undo/redo, compact view, themed (dark / light), notes per node, color overrides on edges.**
|
|
105
|
-
- **CI-ready CLI** — `validate`, `render` (headless SVG), `watch`, `
|
|
106
|
-
- **AI skill + slash commands** — `archik init` installs both automatically.
|
|
105
|
+
- **CI-ready CLI** — `validate`, `render` (headless SVG), `watch`, `drift` (source-tree gaps), `trace` (coverage matrix with `--fail-on partial|none`).
|
|
106
|
+
- **AI skill + slash commands** — `archik init` installs both automatically. Eleven `/archik:*` commands cover the structural surface (`spawn`, `evolve`, `suggest`, `describe`, `dev`, `accept`, `reject`) plus the requirements layer (`actor`, `usecase`, `trace`, `alpha`).
|
|
107
|
+
|
|
108
|
+
## Beyond the diagram — use cases, traceability, alphas
|
|
109
|
+
|
|
110
|
+
The structural diagram is the start. Above it sits a thin requirements
|
|
111
|
+
layer that closes the Jacobson chain — *who acts → what they want →
|
|
112
|
+
how the system behaves at runtime → which structural nodes participate
|
|
113
|
+
→ which tests prove it*. Every link is a YAML cross-reference and the
|
|
114
|
+
validator rejects breaks at every step.
|
|
115
|
+
|
|
116
|
+
| Artifact | File | What it captures |
|
|
117
|
+
| ------------------------------ | ----------------------------------- | ------------------------------------------------------------- |
|
|
118
|
+
| **Actors** | `*.archik.actors.yaml` | Who initiates use cases — humans, external systems, schedulers |
|
|
119
|
+
| **Use cases + slices** | `.archik/usecases/*.archik.uc.yaml` | What each actor wants, with slim slices that name test paths |
|
|
120
|
+
| **Sequence diagrams** | `*.archik.seq.yaml` | How a slice plays out at runtime (ECB-checked when bound to a slice via `realizes`) |
|
|
121
|
+
| **Alphas (Essence / SEMAT)** | `*.archik.alphas.yaml` | Project-wide progress dials with mechanically-verified states |
|
|
122
|
+
|
|
123
|
+
`npx archik trace` prints the coverage matrix (use case × slice × test
|
|
124
|
+
× seq × ECB) so "are we done?" stops being an opinion. The dev canvas
|
|
125
|
+
surfaces the same information visually: the **Use cases** toolbar
|
|
126
|
+
button shows live trace status (`✓ all traced` / `◐ N to finish` /
|
|
127
|
+
`○ N untraced`), and `/__archik/usecases` is a dedicated page with
|
|
128
|
+
master/detail rail, slice cards with clickable test paths, and direct
|
|
129
|
+
links to each realising sequence diagram.
|
|
130
|
+
|
|
131
|
+
The `validate` command enforces the integrity triangle: if a slice
|
|
132
|
+
points at a seq file, the seq must point back; if a seq diagram
|
|
133
|
+
realises a slice, every participant node must list that seq in its
|
|
134
|
+
`seqFiles` array. Orphans get caught at lint time, not in code review.
|
|
107
135
|
|
|
108
136
|
## For Claude Code & other LLMs
|
|
109
137
|
|
|
@@ -111,7 +139,9 @@ The whole reason archik uses YAML instead of a binary format: **the file is the
|
|
|
111
139
|
|
|
112
140
|
The skill enforces a hard rule: **Claude talks to archik only through the `npx archik` CLI** — never `Read`, `Write`, or `Edit` on a YAML directly. Queries go through `npx archik q`, suggestions through `npx archik suggest set`, lifecycle through `npx archik suggest accept | reject`. You own the file; the CLI is the contract.
|
|
113
141
|
|
|
114
|
-
### The
|
|
142
|
+
### The slash commands
|
|
143
|
+
|
|
144
|
+
**Structural diagram (the original surface):**
|
|
115
145
|
|
|
116
146
|
| Command | What it does |
|
|
117
147
|
| --------------------------- | ----------------------------------------------------------- |
|
|
@@ -123,6 +153,15 @@ The skill enforces a hard rule: **Claude talks to archik only through the `npx a
|
|
|
123
153
|
| `/archik:accept` | Apply the pending suggestion |
|
|
124
154
|
| `/archik:reject` | Discard the pending suggestion |
|
|
125
155
|
|
|
156
|
+
**Requirements + traceability (the Jacobson layer — see below):**
|
|
157
|
+
|
|
158
|
+
| Command | What it does |
|
|
159
|
+
| ------------------------------------ | --------------------------------------------------------------------------- |
|
|
160
|
+
| `/archik:actor <id>` | Add or update an actor in the actor index |
|
|
161
|
+
| `/archik:usecase <name>` | Author a use case (actors + flows + slices + tests) |
|
|
162
|
+
| `/archik:trace` | Show the use case × slice × test × seq × ECB coverage matrix |
|
|
163
|
+
| `/archik:alpha [show \| promote …]` | Read the project's alpha state, or promote one with a criteria check |
|
|
164
|
+
|
|
126
165
|
A typical first-day flow:
|
|
127
166
|
|
|
128
167
|
```
|
|
@@ -170,6 +209,24 @@ archik render [path] Render to a self-contained SVG file
|
|
|
170
209
|
--theme <name> "dark" (default) or "light"
|
|
171
210
|
archik watch [path] Re-render to SVG on every file change (Ctrl+C to stop)
|
|
172
211
|
|
|
212
|
+
archik trace [path] Use case × slice × test × seq × ECB coverage matrix
|
|
213
|
+
--json structured rows + summary
|
|
214
|
+
--fail-on <level> exit 1 on partial | none (CI gate)
|
|
215
|
+
--use-case <id> filter to one use case
|
|
216
|
+
archik drift [path] Surface gaps where a node's sourcePath or a slice's
|
|
217
|
+
tests path no longer resolves on disk
|
|
218
|
+
|
|
219
|
+
archik alpha [sub] Project-wide alpha state (Essence / SEMAT)
|
|
220
|
+
show snapshot with ✓ / ? / ✗ verification
|
|
221
|
+
promote <a> <s> advance an alpha — runs criteria first
|
|
222
|
+
demote <a> <s> walk back; --note '<reason>' required
|
|
223
|
+
|
|
224
|
+
archik upgrade Pull the latest archik via the project's package manager
|
|
225
|
+
(auto-detects npm / pnpm / yarn / bun from the lockfile)
|
|
226
|
+
then refreshes SKILL.md + slash commands from the new binary
|
|
227
|
+
--skip-install just refresh artifacts; don't reinstall
|
|
228
|
+
--user install to ~/.claude (global skill)
|
|
229
|
+
|
|
173
230
|
archik suggest [sub] Manage Claude's pending architecture suggestion
|
|
174
231
|
show summarise the pending sidecar (default; --json supported)
|
|
175
232
|
set <draft> validate a draft YAML and stage it as the sidecar
|