create-claude-cabinet 0.29.13 → 0.30.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/lib/cli.js +16 -0
- package/package.json +1 -1
- package/templates/handoff/capture-and-encrypt.mjs +67 -0
- package/templates/handoff/decrypt-credential.mjs +72 -0
- package/templates/handoff/example-checklist.yaml +81 -0
- package/templates/handoff/generate-keys.mjs +35 -0
- package/templates/handoff/handoff-checklist.mjs +172 -0
- package/templates/handoff/handoff-crypto.mjs +102 -0
- package/templates/handoff/handoff-transport.mjs +105 -0
- package/templates/handoff/schema.md +92 -0
- package/templates/handoff/secure-input.mjs +99 -0
- package/templates/site-audit-runtime/package.json +1 -1
- package/templates/site-audit-runtime/src/checks/axe-core.mjs +13 -6
- package/templates/site-audit-runtime/src/checks/lighthouse.mjs +15 -1
- package/templates/site-audit-runtime/src/checks/pa11y.mjs +2 -2
- package/templates/site-audit-runtime/src/report.mjs +7 -0
- package/templates/skills/cabinet-mantine-quality/SKILL.md +21 -0
- package/templates/skills/handoff/SKILL.md +122 -0
- package/templates/skills/handoff-add/SKILL.md +44 -0
- package/templates/skills/handoff-ask/SKILL.md +45 -0
- package/templates/skills/handoff-create/SKILL.md +161 -0
- package/templates/skills/handoff-progress/SKILL.md +55 -0
- package/templates/skills/handoff-status/SKILL.md +86 -0
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: handoff-progress
|
|
3
|
+
description: |
|
|
4
|
+
Check handoff progress without re-entering the full checklist flow.
|
|
5
|
+
Shows what's completed, what's pending, and any messages from the
|
|
6
|
+
consultant. Use when: "handoff progress", "/handoff-progress",
|
|
7
|
+
"how much is left", "any messages from the consultant".
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# /handoff-progress — Check Your Progress
|
|
11
|
+
|
|
12
|
+
## Purpose
|
|
13
|
+
|
|
14
|
+
Lightweight status check for the client. Shows progress and incoming
|
|
15
|
+
messages without starting the full checklist walk.
|
|
16
|
+
|
|
17
|
+
## Workflow
|
|
18
|
+
|
|
19
|
+
1. Locate `handoff.yaml` — check in order: path from args, then
|
|
20
|
+
project root (`./handoff.yaml`). Read `handoff-state.json` from
|
|
21
|
+
the same directory as the checklist (state file is co-located).
|
|
22
|
+
- If no state file: "You haven't started this checklist yet. Run
|
|
23
|
+
`/handoff` to begin."
|
|
24
|
+
- If no checklist: "No handoff.yaml found — has the plugin been
|
|
25
|
+
installed?"
|
|
26
|
+
|
|
27
|
+
2. Check the connected email MCP for incoming `[Handoff]` emails from
|
|
28
|
+
the consultant. Process and display any new messages (notes, checklist
|
|
29
|
+
updates, questions).
|
|
30
|
+
- If no email MCP connected, skip silently.
|
|
31
|
+
|
|
32
|
+
3. Show progress table:
|
|
33
|
+
|
|
34
|
+
```
|
|
35
|
+
## Maginnis Go-Live (7/12 complete)
|
|
36
|
+
|
|
37
|
+
### Hosting Setup (3/3)
|
|
38
|
+
[x] hosting_provider: Railway
|
|
39
|
+
[x] railway_token: sent
|
|
40
|
+
[x] railway_project_id: provided
|
|
41
|
+
|
|
42
|
+
### Email Service (1/2)
|
|
43
|
+
[x] email_provider: Postmark
|
|
44
|
+
[ ] postmark_token: not started
|
|
45
|
+
|
|
46
|
+
### Domain & DNS (3/7)
|
|
47
|
+
...
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
4. If new items were added by the consultant via `/handoff-add`,
|
|
51
|
+
highlight them: "[Consultant] added N new items since your last
|
|
52
|
+
session."
|
|
53
|
+
|
|
54
|
+
5. Offer: "Ready to continue? Run `/handoff` to pick up where you
|
|
55
|
+
left off."
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: handoff-status
|
|
3
|
+
description: |
|
|
4
|
+
Consultant's progress dashboard for active handoff engagements. Shows
|
|
5
|
+
what the client has completed, surfaces messages, and retrieves
|
|
6
|
+
encrypted credentials. Use when: "handoff status", "/handoff-status",
|
|
7
|
+
"check on Ed's progress", "decrypt a credential", "any updates from
|
|
8
|
+
the client".
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# /handoff-status — Handoff Dashboard
|
|
12
|
+
|
|
13
|
+
## Purpose
|
|
14
|
+
|
|
15
|
+
Glanceable progress dashboard for the consultant. Shows what the client
|
|
16
|
+
has completed, displays incoming messages, and retrieves encrypted
|
|
17
|
+
credentials on demand.
|
|
18
|
+
|
|
19
|
+
## Workflow
|
|
20
|
+
|
|
21
|
+
### 1. Check for Incoming
|
|
22
|
+
|
|
23
|
+
Check the connected email MCP for incoming `[Handoff]` emails from the
|
|
24
|
+
client. Process each by type:
|
|
25
|
+
|
|
26
|
+
- **`session_summary`** — Update local progress view with the client's
|
|
27
|
+
answers (non-credential values).
|
|
28
|
+
- **`credential`** — Queue for decryption (don't auto-decrypt).
|
|
29
|
+
- **`question`** — Display the message prominently.
|
|
30
|
+
|
|
31
|
+
If no email MCP connected, check `handoff-out/` for file-transport
|
|
32
|
+
deliveries. If neither available, show only local state.
|
|
33
|
+
|
|
34
|
+
### 2. Show Progress
|
|
35
|
+
|
|
36
|
+
For each active handoff (each `handoff.yaml` in the project), show:
|
|
37
|
+
|
|
38
|
+
```
|
|
39
|
+
## Maginnis Go-Live (7/12 complete)
|
|
40
|
+
|
|
41
|
+
### Hosting Setup
|
|
42
|
+
[x] hosting_provider: Railway
|
|
43
|
+
[x] railway_token: sent (env_abc123) — decrypt?
|
|
44
|
+
[ ] railway_project_id: waiting
|
|
45
|
+
|
|
46
|
+
### Email Service
|
|
47
|
+
[x] email_provider: Postmark
|
|
48
|
+
[ ] postmark_token: not started
|
|
49
|
+
|
|
50
|
+
### Messages
|
|
51
|
+
- Ed (May 30, 12:30): "Where do I find the GTM container ID?"
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### 3. Credential Retrieval
|
|
55
|
+
|
|
56
|
+
When the consultant asks to decrypt a credential (or says "decrypt" for
|
|
57
|
+
a specific envelope):
|
|
58
|
+
|
|
59
|
+
1. Locate the envelope: search email for `[Handoff] env_<id>` subject,
|
|
60
|
+
or read from `handoff-out/<id>.enc` for file transport.
|
|
61
|
+
2. Extract the base64 envelope string.
|
|
62
|
+
3. Invoke the decrypt CLI — it handles passphrase capture via secure
|
|
63
|
+
OS dialog internally (passphrase never enters conversation):
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
node .claude/handoff/decrypt-credential.mjs \
|
|
67
|
+
--envelope <base64-envelope-string> \
|
|
68
|
+
--private-key keys/consultant.priv.jwk.enc
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
- **Exit 0:** stdout is the decrypted plaintext. Display once.
|
|
72
|
+
- **Exit 2:** User cancelled the passphrase dialog. Skip.
|
|
73
|
+
- **Exit 5:** Wrong passphrase. Surface "Wrong passphrase — try
|
|
74
|
+
again?" and re-invoke on confirmation.
|
|
75
|
+
- **Exit 3/4:** Dialog unavailable or decrypt error. Surface the
|
|
76
|
+
JSON error from stderr.
|
|
77
|
+
|
|
78
|
+
4. Advise the consultant to copy the value now — it won't be stored.
|
|
79
|
+
|
|
80
|
+
## Rules
|
|
81
|
+
|
|
82
|
+
- Decrypted credential values are displayed once and not stored
|
|
83
|
+
- Passphrase capture uses the same secure OS dialog as client-side
|
|
84
|
+
credential capture — it never enters conversation
|
|
85
|
+
- If the consultant asks to re-decrypt, re-prompt for passphrase
|
|
86
|
+
(don't cache it)
|