@erclx/aitk 0.49.0 → 0.51.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/claude/.claude-plugin/plugin.json +1 -1
- package/claude/skills/claude-orchestrate/REQUIREMENT.md +6 -1
- package/claude/skills/claude-orchestrate/SKILL.md +3 -3
- package/{snippets/claude → claude/skills/claude-orchestrate/references}/orchestrator-handoff.md +5 -0
- package/{snippets/claude → claude/skills/claude-orchestrate/references}/orchestrator-resume.md +5 -0
- package/{snippets/claude → claude/skills/claude-orchestrate/references}/orchestrator-sweep.md +5 -0
- package/docs/visual-design-workflow.md +1 -1
- package/package.json +1 -1
- package/snippets/snippets.toml +0 -7
- package/standards/design.md +44 -0
- package/standards/diagrams.md +28 -0
- package/standards/publish.md +1 -1
- package/standards/slug.md +1 -1
- package/standards/standard.md +57 -0
- package/standards/versioning.md +1 -1
- package/standards/wireframes.md +35 -0
|
@@ -15,6 +15,8 @@ The session also writes surfaces it is told only how to read. Refilling the queu
|
|
|
15
15
|
|
|
16
16
|
Output drifts everywhere the contract stops. The specified shape covers invocation alone, so a sweep report, a board report, and an analysis each end in a decision the human owns and each buries it under the evidence they would have skipped. A compaction is the same failure one step earlier, since the file that survives it has a stated reader and no stated writer, and the session improvises what to save and loses the reasoning the board never held.
|
|
17
17
|
|
|
18
|
+
The runbooks the session cannot run from memory fail on a third axis, which is where they are kept. A runbook reached by an installed path is a dependency on a channel this skill does not travel on, so a project holding the plugin and running no install follows the citation to nothing, and nothing reports the break because a missing file produces no error until someone opens the path. The three that cover the moments the loop cannot detect therefore have to ship inside the skill.
|
|
19
|
+
|
|
18
20
|
## Must
|
|
19
21
|
|
|
20
22
|
- Read the priority file for execution order, since the index sorts by filename and states no order
|
|
@@ -28,7 +30,9 @@ Output drifts everywhere the contract stops. The specified shape covers invocati
|
|
|
28
30
|
- Carry a plan pointer in the Plan column and a file set in the Touches column, so a row's readiness and disjointness claims stay checkable
|
|
29
31
|
- Re-resolve the board's plan pointers after any archive, since the archiving skill rewrites the task file and knows nothing about the board
|
|
30
32
|
- Lead a sweep report, a board report, and an analysis with the state, the open decisions, and the next action, keeping the evidence below them
|
|
31
|
-
- Write the pre-compact handoff with what no other file carries, and name the
|
|
33
|
+
- Write the pre-compact handoff with what no other file carries, and name the runbook that reads it back
|
|
34
|
+
- Carry the handoff, resume, and sweep runbooks inside the skill, so every citation resolves for a project holding the plugin and nothing else
|
|
35
|
+
- Read the handoff or the resume runbook when the human asks for that side of a compaction, since the request is the only signal available for a moment the loop cannot detect
|
|
32
36
|
|
|
33
37
|
## Must not
|
|
34
38
|
|
|
@@ -47,6 +51,7 @@ Output drifts everywhere the contract stops. The specified shape covers invocati
|
|
|
47
51
|
- Priority file absent: report the queue and say the order is unrecorded rather than inferring it from the index
|
|
48
52
|
- Roadmap absent: omit the roadmap line rather than asserting a version the file does not state
|
|
49
53
|
- Roadmap present but never committed: report the date as uncommitted, since a blank reads as a formatting slip
|
|
54
|
+
- This body dropped from a long session approaching a compaction: name the re-invocation and the runbook paths, since the routing lives in the body and a user-invoked skill routes nothing once it is gone
|
|
50
55
|
|
|
51
56
|
## Out of scope
|
|
52
57
|
|
|
@@ -35,9 +35,9 @@ Then output the state of play so the human knows what to launch, review, and mer
|
|
|
35
35
|
|
|
36
36
|
The roadmap is optional and this skill does not require it. It carries why a sequence is what it is, changes only when strategy changes, and is absent in a project whose scope has already shipped. Report what it says and name it as the source. Never assert an active version the file does not state, and say nothing about one when the file is missing.
|
|
37
37
|
|
|
38
|
-
A compaction is a moment this skill cannot detect, so
|
|
38
|
+
A compaction is a moment this skill cannot detect, so the human asks for each side of it and this skill reads the matching runbook when they do. On a request to write the handoff or save the session, read `${CLAUDE_SKILL_DIR}/references/orchestrator-handoff.md` and follow it. It writes `.claude/tasks/session.md` with the state of play, the decisions taken under delegated authority, the mistakes worth not repeating, and the standing cautions. On a request to resume after a compaction, read `${CLAUDE_SKILL_DIR}/references/orchestrator-resume.md`, which reads that file back with the board and the groundwork behind the live work. Write nothing to the handoff that the board, a task file, or a groundwork folder already carries.
|
|
39
39
|
|
|
40
|
-
|
|
40
|
+
That routing lives in this body and this skill is user-invoked, so a session that has dropped the body routes nothing and the request lands as ordinary conversation. Approaching a compaction is when a long session is likeliest to have dropped it, which is the same moment the handoff exists for. Re-invoke `/aitk:claude-orchestrate` first whenever the session has run long or the ask goes unanswered. The two runbooks sit at `references/orchestrator-handoff.md` and `references/orchestrator-resume.md` inside this skill's own folder, so a person who knows their plugin root opens either one directly and follows it without this skill loaded at all.
|
|
41
41
|
|
|
42
42
|
## Output
|
|
43
43
|
|
|
@@ -110,7 +110,7 @@ Write no shape for a correction. A correction is a sentence, and a format for ad
|
|
|
110
110
|
|
|
111
111
|
## Refilling the ready queue
|
|
112
112
|
|
|
113
|
-
Keep enough planned, non-conflicting tasks available that a free worker never waits, and place the findings the last merge produced before promoting anything new. Run this after every merge and whenever the ready list thins.
|
|
113
|
+
Keep enough planned, non-conflicting tasks available that a free worker never waits, and place the findings the last merge produced before promoting anything new. Run this after every merge and whenever the ready list thins. `${CLAUDE_SKILL_DIR}/references/orchestrator-sweep.md` wraps this procedure for a batch of merges and adds the plan re-verification that a merge invalidates.
|
|
114
114
|
|
|
115
115
|
Open the sweep by invoking `aitk:claude-memory-capture`. Both other callers are ship-chain skills and this session never ships, so without this the session that receives every operator correction is the one session that records none. The sweep is the closest bounded moment this session has to a ship, and it already runs once per batch of merges, which beats an end-of-session moment a compaction can cut short.
|
|
116
116
|
|
package/{snippets/claude → claude/skills/claude-orchestrate/references}/orchestrator-handoff.md
RENAMED
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Orchestrator handoff runbook
|
|
3
|
+
description: What to write to .claude/tasks/session.md before a compaction, and what to leave to the board
|
|
4
|
+
---
|
|
5
|
+
|
|
1
6
|
Write the pre-compact handoff as orchestrator. Do this before a compaction, because a compaction keeps conclusions and drops the reasoning that produced them, and no other file in the repository carries that reasoning.
|
|
2
7
|
|
|
3
8
|
1. Resolve the main worktree root with `git worktree list --porcelain | grep -m 1 '^worktree ' | cut -d' ' -f2-`, falling back to `pwd`. Write `.claude/tasks/session.md` under it.
|
package/{snippets/claude → claude/skills/claude-orchestrate/references}/orchestrator-resume.md
RENAMED
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Orchestrator resume runbook
|
|
3
|
+
description: What to read back after a compaction, and how to treat a groundwork folder's three shelf lives
|
|
4
|
+
---
|
|
5
|
+
|
|
1
6
|
Resume as orchestrator after a compaction. Read the board and the groundwork behind the live work before answering anything, because a compaction summary keeps conclusions and drops the reasoning that produced them.
|
|
2
7
|
|
|
3
8
|
1. Resolve the main worktree root with `git worktree list --porcelain | grep -m 1 '^worktree ' | cut -d' ' -f2-`, falling back to `pwd`. Every path below resolves against it.
|
package/{snippets/claude → claude/skills/claude-orchestrate/references}/orchestrator-sweep.md
RENAMED
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Orchestrator sweep runbook
|
|
3
|
+
description: The once-per-batch board sweep, plan re-verification, and where each merged finding goes
|
|
4
|
+
---
|
|
5
|
+
|
|
1
6
|
Sweep the board as orchestrator after merging. Run this once per batch of merges, before answering what to do next, because the surfaces that record what shipped are the ones nothing updates on its own.
|
|
2
7
|
|
|
3
8
|
1. Pull into the main worktree rather than fetching. A fetch leaves the local branch behind, so `git log` reports a state that has not arrived. A repository that adds a post-merge hook to name archive candidates gets it on a pull and never on a fetch.
|
|
@@ -18,7 +18,7 @@ The default. `.claude/DESIGN.md` holds visual intent as prose plus token tables
|
|
|
18
18
|
|
|
19
19
|
### Seed shape
|
|
20
20
|
|
|
21
|
-
The toolkit seed in `tooling/claude/seeds/.claude/DESIGN.md` ships a token-table template. The `aitk:claude-design-extract` skill drafts the file, sourcing tokens from a project's existing prose and CLI UI surfaces, or proposing them from `.claude/REQUIREMENTS.md` and a `## Personality` paragraph when no UI code exists yet. `aitk design render` writes an HTML plus CSS preview to `.claude/review/design/` for eyeballing the current system without leaving Claude Code. See `.claude/context/design.md`.
|
|
21
|
+
The toolkit seed in `tooling/claude/seeds/.claude/DESIGN.md` ships a token-table template with a starting set of roles, and `.claude/standards/design.md` carries the same tables under `## Template` with placeholder rows. The column headers are what the renderer parses, so they stay verbatim in either, while the rows and values are the project's own. The `aitk:claude-design-extract` skill drafts the file, sourcing tokens from a project's existing prose and CLI UI surfaces, or proposing them from `.claude/REQUIREMENTS.md` and a `## Personality` paragraph when no UI code exists yet. `aitk design render` writes an HTML plus CSS preview to `.claude/review/design/` for eyeballing the current system without leaving Claude Code. See `.claude/context/design.md`.
|
|
22
22
|
|
|
23
23
|
### Tools
|
|
24
24
|
|
package/package.json
CHANGED
package/snippets/snippets.toml
CHANGED
package/standards/design.md
CHANGED
|
@@ -37,3 +37,47 @@ Does not govern:
|
|
|
37
37
|
## Sections
|
|
38
38
|
|
|
39
39
|
Use `## Personality`, `## Color`, `## Typography`, `## Spacing`, `## Borders`, `## Motion`, and `## Iconography`. The token tables carry fixed headers the renderer reads.
|
|
40
|
+
|
|
41
|
+
## Template
|
|
42
|
+
|
|
43
|
+
The column headers are the strings the renderer parses, read by exact key, so they stay verbatim. Row names are not. Each is slugged into the variable name it emits, which leaves a project free to rename a row, add one, or drop one it has no use for.
|
|
44
|
+
|
|
45
|
+
```markdown
|
|
46
|
+
# Design
|
|
47
|
+
|
|
48
|
+
## Personality
|
|
49
|
+
|
|
50
|
+
<one paragraph on voice, tone, and the feeling a user should have>
|
|
51
|
+
|
|
52
|
+
## Color
|
|
53
|
+
|
|
54
|
+
| Role | Intent | Value |
|
|
55
|
+
| ------ | ---------------- | ------- |
|
|
56
|
+
| <role> | <what it is for> | <value> |
|
|
57
|
+
|
|
58
|
+
## Typography
|
|
59
|
+
|
|
60
|
+
| Role | Family | Weight | Size | Line height |
|
|
61
|
+
| ------ | -------- | -------- | ------ | ----------- |
|
|
62
|
+
| <role> | <family> | <weight> | <size> | <height> |
|
|
63
|
+
|
|
64
|
+
## Spacing
|
|
65
|
+
|
|
66
|
+
| Step | Multiplier | Value |
|
|
67
|
+
| ------ | ------------ | ------- |
|
|
68
|
+
| <step> | <multiplier> | <value> |
|
|
69
|
+
|
|
70
|
+
## Borders
|
|
71
|
+
|
|
72
|
+
| Role | Radius | Width | When used |
|
|
73
|
+
| ------ | -------- | ------- | ----------- |
|
|
74
|
+
| <role> | <radius> | <width> | <when used> |
|
|
75
|
+
|
|
76
|
+
## Motion
|
|
77
|
+
|
|
78
|
+
<whether motion is used at all, and if so the default duration and easing>
|
|
79
|
+
|
|
80
|
+
## Iconography
|
|
81
|
+
|
|
82
|
+
<style, source library, and whether custom icons are allowed>
|
|
83
|
+
```
|
package/standards/diagrams.md
CHANGED
|
@@ -122,3 +122,31 @@ Reference the context entry by path when a reader needs the mechanism. The diagr
|
|
|
122
122
|
- That watch samples thinly. It sees the one or two paths an entry happened to cite and nothing else, so a change elsewhere leaves the entry looking current. `verified` is what covers the gap, and an entry whose date sits far behind the branch is due a read whether or not anything flagged it.
|
|
123
123
|
- The explanation paragraphs around a Mermaid block are prose and follow `prose.md`. The fenced block itself is not, which is why a check scoped to prose is the wrong thing to rely on for what sits inside it.
|
|
124
124
|
- The punctuation bans still apply to node and subgraph labels, and nothing checks them there. An em dash in a label passes every gate the repository has, so read the labels before shipping the entry.
|
|
125
|
+
|
|
126
|
+
## Template
|
|
127
|
+
|
|
128
|
+
The filename and the `category` value both come from Entry kinds and are fixed per kind. A stub nobody has drawn yet carries `TODO: never verified` in place of the SHA and date. The node names and labels inside the fence are placeholders, written bare because Mermaid reads an angle bracket as markup.
|
|
129
|
+
|
|
130
|
+
````markdown
|
|
131
|
+
---
|
|
132
|
+
title: <what the entry answers>
|
|
133
|
+
description: <which question it settles and which source signal drives it>
|
|
134
|
+
category: <the kind, verbatim from Entry kinds>
|
|
135
|
+
verified: <short-sha> <YYYY-MM-DD>
|
|
136
|
+
---
|
|
137
|
+
|
|
138
|
+
# <what the entry answers>
|
|
139
|
+
|
|
140
|
+
```mermaid
|
|
141
|
+
flowchart TB
|
|
142
|
+
accTitle: what the diagram answers
|
|
143
|
+
accDescr: the structure in one sentence for a reader who cannot see the render
|
|
144
|
+
|
|
145
|
+
a[first part] --> b[second part]
|
|
146
|
+
b --> c[third part]
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
<One paragraph leading with what the diagram shows.>
|
|
150
|
+
|
|
151
|
+
<One paragraph on why this shape was chosen and what was rejected, where the choice was non-obvious. Name one or two code paths the reader can open.>
|
|
152
|
+
````
|
package/standards/publish.md
CHANGED
|
@@ -7,7 +7,7 @@ description: Scan run against finished text leaving through a channel no automat
|
|
|
7
7
|
|
|
8
8
|
## Scope
|
|
9
9
|
|
|
10
|
-
Governs the scan an author runs against finished text on its way out, and the responses available when a source it reaches for cannot be read. It is an attribute standard rather than a document-type one, so it applies to any text leaving through a channel no automated check covers.
|
|
10
|
+
Governs the scan an author runs against finished text on its way out, and the responses available when a source it reaches for cannot be read. It is an attribute standard rather than a document-type one, so it applies to any text leaving through a channel no automated check covers, and it carries no template because a scan has no document to shape.
|
|
11
11
|
|
|
12
12
|
Does not govern:
|
|
13
13
|
|
package/standards/slug.md
CHANGED
|
@@ -7,7 +7,7 @@ description: Transform from a git branch name to a slug, and the three responses
|
|
|
7
7
|
|
|
8
8
|
## Scope
|
|
9
9
|
|
|
10
|
-
Governs the transform from a git branch name to the slug a surface carries in a derived name, and the responses available when the transform returns empty. It is an attribute standard rather than a document-type one, so it applies wherever a branch-derived name is produced.
|
|
10
|
+
Governs the transform from a git branch name to the slug a surface carries in a derived name, and the responses available when the transform returns empty. It is an attribute standard rather than a document-type one, so it applies wherever a branch-derived name is produced, and it carries no template because a string has no document to shape.
|
|
11
11
|
|
|
12
12
|
Does not govern:
|
|
13
13
|
|
package/standards/standard.md
CHANGED
|
@@ -91,3 +91,60 @@ A standard failing these questions is non-conforming even when it satisfies ever
|
|
|
91
91
|
- When shown, label them `### Correct` and `### Incorrect` with an inline `# reason` on each entry
|
|
92
92
|
- Keep to two or three entries. Show the pattern, not a catalog.
|
|
93
93
|
- Keep each entry a short one-liner or command. Do not write multi-line correct and incorrect function blocks.
|
|
94
|
+
|
|
95
|
+
## Template
|
|
96
|
+
|
|
97
|
+
- Carry one fenced template of the document the standard governs, so an author copies a shape instead of reconstructing it from prose.
|
|
98
|
+
- Bind this to a standard governing a document type. An attribute standard governs a scan, a string, or a label rather than a file, so it has no document to template and carries none.
|
|
99
|
+
- State that exemption in the sentence declaring the standard an attribute standard. An exemption left to inference reads as an omission, and the next author writes a template that teaches nothing.
|
|
100
|
+
- Place the template below the rules it satisfies, under a `## Template` heading or inside the section holding those rules. A reader arrives at it having already read what each part means.
|
|
101
|
+
- Show the skeleton alone: every required section, one placeholder line for what each holds. A full worked document is a second document to maintain.
|
|
102
|
+
- Write placeholders in angle brackets rather than copying a real document. A copied file goes stale, and its backticked filenames read as citations to anything parsing the standard.
|
|
103
|
+
- Switch to a bare word where the fenced language reads `<` as syntax of its own, as Mermaid and HTML do, and say in the line above the fence that the names are placeholders. A template that does not parse in its own language teaches a shape the author cannot run.
|
|
104
|
+
- Carry any header, key, or label a consuming tool parses verbatim. The template is the only place an author learns which strings are load-bearing, since prose calling them fixed does not say what they are.
|
|
105
|
+
- Treat the template as authoritative where it and the prose disagree. An author copies the block, so a contradiction ships as the block, and naming the winner turns a drift into a visible defect rather than a silent one.
|
|
106
|
+
|
|
107
|
+
````markdown
|
|
108
|
+
---
|
|
109
|
+
title: <Document type> reference
|
|
110
|
+
description: <one line naming what this standard covers>
|
|
111
|
+
---
|
|
112
|
+
|
|
113
|
+
# <Document type> reference
|
|
114
|
+
|
|
115
|
+
Applies to `<path/to/document>`. <One line on what the document is for and when it changes.>
|
|
116
|
+
|
|
117
|
+
## Scope
|
|
118
|
+
|
|
119
|
+
Governs `<path/to/document>`: <the aspects this standard sets>.
|
|
120
|
+
|
|
121
|
+
Does not govern:
|
|
122
|
+
|
|
123
|
+
- <excluded concern>: `<sibling>.md`
|
|
124
|
+
- <excluded concern>: <the surface that owns it>
|
|
125
|
+
|
|
126
|
+
## What a working <document type> looks like
|
|
127
|
+
|
|
128
|
+
A <document type> works when <the task a reader completes from it alone>:
|
|
129
|
+
|
|
130
|
+
- <question the document must answer>
|
|
131
|
+
- <question the document must answer>
|
|
132
|
+
|
|
133
|
+
A <document type> failing these is non-conforming even when it satisfies every shape rule below.
|
|
134
|
+
|
|
135
|
+
## Frontmatter
|
|
136
|
+
|
|
137
|
+
- `title` (required): <casing, and what it names>
|
|
138
|
+
- `description` (required): <what the one line covers>
|
|
139
|
+
|
|
140
|
+
## <Shape rule group>
|
|
141
|
+
|
|
142
|
+
- <imperative rule, one concern per bullet>
|
|
143
|
+
- <imperative rule, one concern per bullet>
|
|
144
|
+
|
|
145
|
+
## Template
|
|
146
|
+
|
|
147
|
+
```markdown
|
|
148
|
+
<the skeleton of the governed document, placeholders throughout>
|
|
149
|
+
```
|
|
150
|
+
````
|
package/standards/versioning.md
CHANGED
|
@@ -9,7 +9,7 @@ Two namespaces, kept separate.
|
|
|
9
9
|
|
|
10
10
|
## Scope
|
|
11
11
|
|
|
12
|
-
Governs the two version namespaces, phase labels and semver tags, and which surfaces each may appear on. It is an attribute standard rather than a document-type one, so it applies wherever either namespace is written.
|
|
12
|
+
Governs the two version namespaces, phase labels and semver tags, and which surfaces each may appear on. It is an attribute standard rather than a document-type one, so it applies wherever either namespace is written, and it carries no template because a label has no document to shape.
|
|
13
13
|
|
|
14
14
|
Does not govern:
|
|
15
15
|
|
package/standards/wireframes.md
CHANGED
|
@@ -75,3 +75,38 @@ Reference the context entry from the wireframe by path when a reader needs the m
|
|
|
75
75
|
|
|
76
76
|
- When a surface's layout or interaction changes, update its wireframe file in the same PR. A wireframe showing a defunct layout is worse than none.
|
|
77
77
|
- The Behavior and Copy prose around an ASCII block is prose and follows `prose.md`. The fenced block itself is not, so a check scoped to prose is the wrong thing to rely on for what sits inside it.
|
|
78
|
+
|
|
79
|
+
## Template
|
|
80
|
+
|
|
81
|
+
One H2 per layout variant, each holding its own fence. A surface with a single layout carries one.
|
|
82
|
+
|
|
83
|
+
````markdown
|
|
84
|
+
---
|
|
85
|
+
title: <Surface name>
|
|
86
|
+
description: <when and where the surface appears>
|
|
87
|
+
---
|
|
88
|
+
|
|
89
|
+
# <Surface name>
|
|
90
|
+
|
|
91
|
+
## <what triggers this variant>
|
|
92
|
+
|
|
93
|
+
```plaintext
|
|
94
|
+
+------------------------------------------+
|
|
95
|
+
| <region> ← <its role> |
|
|
96
|
+
+------------------------------------------+
|
|
97
|
+
| |
|
|
98
|
+
| <region> ← <its role> |
|
|
99
|
+
| |
|
|
100
|
+
+------------------------------------------+
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
## Copy
|
|
104
|
+
|
|
105
|
+
- <on-screen text, word for word>
|
|
106
|
+
- <text the surface templates>: <marked so a reader does not read it as final>
|
|
107
|
+
|
|
108
|
+
## Behavior
|
|
109
|
+
|
|
110
|
+
- <what the visitor does, and what changes on screen>
|
|
111
|
+
- <what each reachable state looks like>
|
|
112
|
+
````
|