@tablation/crew 0.37.0 → 0.39.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 +38 -10
- package/dist/cli.js +274 -175
- package/package.json +1 -1
- package/prompts/default/personas/lane-design.md +63 -96
- package/prompts/default/personas/lane-dev.md +15 -15
- package/prompts/default/personas/lane-pair.md +64 -84
- package/prompts/default/personas/lane-qa.md +127 -158
- package/prompts/default/personas/lane-triage.md +79 -64
- package/prompts/default/skills/crew-lane-agent.md +479 -0
- package/prompts/default/skills/design-pass.md +53 -0
- package/prompts/default/skills/filing-a-ticket.md +56 -0
- package/prompts/default/skills/question-and-investigation.md +59 -0
- package/prompts/default/skills/running-the-suite.md +56 -0
- package/prompts/default/skills/ticket-attachments.md +34 -0
- package/prompts/default/skills/workspace-change-authorization.md +35 -0
- package/prompts/default/skills/worktree-setup.md +101 -0
- package/prompts/dev-qa/personas/lane-design.md +2 -0
- package/prompts/dev-qa/personas/lane-dev.md +15 -14
- package/prompts/dev-qa/personas/lane-pair.md +64 -84
- package/prompts/dev-qa/personas/lane-qa.md +126 -144
- package/prompts/dev-qa/personas/lane-triage.md +69 -56
- package/prompts/dev-qa/skills/crew-lane-agent.md +473 -0
- package/prompts/dev-qa/skills/filing-a-ticket.md +56 -0
- package/prompts/dev-qa/skills/question-and-investigation.md +59 -0
- package/prompts/dev-qa/skills/running-the-suite.md +56 -0
- package/prompts/dev-qa/skills/ticket-attachments.md +34 -0
- package/prompts/dev-qa/skills/workspace-change-authorization.md +35 -0
- package/prompts/dev-qa/skills/worktree-setup.md +101 -0
- package/prompts/default/personas/common.md +0 -903
- package/prompts/dev-qa/personas/common.md +0 -874
package/README.md
CHANGED
|
@@ -36,13 +36,32 @@ prompt set (the three-lane dev/design/QA policy this repo ships with — see
|
|
|
36
36
|
A fifth persona, **pair**, rides `crew agents sync` alongside these four but
|
|
37
37
|
is not polled: it is the identity a live, interactive session (an IDE
|
|
38
38
|
conversation, not a scheduled run) uses when it touches the tracker. It has
|
|
39
|
-
no Crew-table seat
|
|
40
|
-
brief (`prompts/default/personas/lane-pair.md`) is not prefixed with
|
|
41
|
-
`common.md` — none of the polling loop's shared policy describes it. `crew
|
|
39
|
+
no Crew-table seat and is never assigned a ticket by the poll loop. `crew
|
|
42
40
|
agents prompt pair` prints its current persona text (a workspace admin's
|
|
43
41
|
live edit if there is one, else the local default) for something like a
|
|
44
42
|
`SessionStart` hook to feed into a session at start.
|
|
45
43
|
|
|
44
|
+
The building lanes' shared policy (worktrees, one stateless invocation per
|
|
45
|
+
cycle, the dev/design/QA hand-off) ships as the `Crew Lane Agent` skill, and
|
|
46
|
+
the **dev**, **design** and **qa** briefs include it with a
|
|
47
|
+
`{{skill: Crew Lane Agent}}` marker on their first line. The Agents row keeps
|
|
48
|
+
the marker; the include is expanded when a run is assembled, from the
|
|
49
|
+
workspace's Agent Skills row if an admin edited it, else the local
|
|
50
|
+
`skills/*.md` file. So an admin edit to a lane's own sentences no longer forks
|
|
51
|
+
the shared policy. The marker is `{{skill:`, a skill name matched exactly after
|
|
52
|
+
trimming, `}}`, on its own line or inline. It is deliberately not a
|
|
53
|
+
`[[table:key]]` record link: personas and skills are not rows of a workspace
|
|
54
|
+
table. An unknown name refuses the run; a skill that includes itself (or a
|
|
55
|
+
cycle) is expanded once and the repeat left literal with a warning in the run
|
|
56
|
+
summary; nesting is capped at 3 levels and 200 KB of included text.
|
|
57
|
+
`crew agents sync` warns about a marker naming a skill the preset doesn't
|
|
58
|
+
ship. **triage** and **pair** are self-contained (`SELF_CONTAINED_ROLES` in
|
|
59
|
+
`src/config.ts`): neither cuts a worktree, builds or hands anything to QA, so
|
|
60
|
+
the policy would only misdescribe them. A preset forked before this change may
|
|
61
|
+
still ship `personas/common.md`, which keeps being prefixed to the building
|
|
62
|
+
briefs. The prompts carry rules, not history; the incidents behind
|
|
63
|
+
each rule are kept in [`docs/prompt-rationale.md`](docs/prompt-rationale.md).
|
|
64
|
+
|
|
46
65
|
Alongside personas, a prompt set can also ship **skills** —
|
|
47
66
|
`prompts/<promptSet>/skills/*.md`, each one YAML frontmatter (`name`,
|
|
48
67
|
`description`) plus a markdown prompt body. A skill isn't a seat: it's not
|
|
@@ -55,7 +74,14 @@ diverged sync narrowed to skills alone, for when you've only touched
|
|
|
55
74
|
`skills/`. Example use — a Pair session invoked via an Epic's
|
|
56
75
|
`grill_link` looks up the `Grill-Me` skill through the Tablation MCP tool
|
|
57
76
|
`agent_skills_controller_get_skill` and follows it. `prompts/default/skills/
|
|
58
|
-
grill-me.md` is
|
|
77
|
+
grill-me.md` is one shipped example; the rest are the building lanes'
|
|
78
|
+
situational procedures (`Worktree Setup`, `Running the Suite`, `Question and
|
|
79
|
+
Investigation Tickets`, `Filing a Ticket`, `Ticket Attachments`, `Workspace
|
|
80
|
+
Change Authorization`, `Design Pass`), which the lane policy names at the step
|
|
81
|
+
that needs each one — every run keeps the rule and the minimum inline and
|
|
82
|
+
fetches the full procedure only when it applies, so a dev run that never
|
|
83
|
+
files a ticket never pays for the filing procedure. `test/prompts.test.ts`
|
|
84
|
+
checks that every skill a persona names ships in the same preset.
|
|
59
85
|
|
|
60
86
|
One role runs per cycle, whichever holds the most urgent actionable ticket
|
|
61
87
|
(`src/priority.ts` decides, and the same module sorts the digest that agent is
|
|
@@ -98,12 +124,14 @@ wants is a fact about that workspace, not about the machine running it.
|
|
|
98
124
|
fit: copy a preset directory (`cp -r prompts/default ~/my-crew-policy`),
|
|
99
125
|
edit its prose, and point `promptSet` at the copy (`~/my-crew-policy` or a
|
|
100
126
|
relative path) — no fork of this repo required. A prompt set is a complete,
|
|
101
|
-
self-contained fork of
|
|
102
|
-
|
|
103
|
-
one; each persona file is read as plain prose
|
|
104
|
-
|
|
127
|
+
self-contained fork of one `personas/lane-<role>.md` per seat
|
|
128
|
+
(and the shared-policy skill the building briefs include), plus whatever `skills/*.md` it wants, not a diff against another
|
|
129
|
+
one; each persona file is read as plain prose (`{{skill: Name}}` includes expanded
|
|
130
|
+
at run time) and concatenated after the
|
|
131
|
+
per-run roster/environment sections and before the queue digest
|
|
105
132
|
(`src/agent.ts`'s `assemblePrompt`), so there's no templating layer to
|
|
106
|
-
learn.
|
|
133
|
+
learn. Keep the prose generic: `test/prompts.test.ts` fails a preset that
|
|
134
|
+
names a path, a command, an id, a ticket reference or a date. `prompts/dev-qa/` is a worked example of trimming a lane out of
|
|
107
135
|
`default` cleanly, including the unused `lane-design.md` stub every
|
|
108
136
|
preset still needs today — see the next paragraph for why.
|
|
109
137
|
|
|
@@ -250,7 +278,7 @@ which only discovers names and remotes, never fetches anything itself.
|
|
|
250
278
|
bin/crew the entry point
|
|
251
279
|
src/ the implementation (Node, run directly via type stripping)
|
|
252
280
|
test/ its tests, including a fake board for integration runs
|
|
253
|
-
prompts/ prompt sets — prompts/<name>/personas/
|
|
281
|
+
prompts/ prompt sets — prompts/<name>/personas/lane-<role>.md
|
|
254
282
|
+ prompts/<name>/skills/*.md
|
|
255
283
|
docs/ CONTRACT.md, REPO_SPEC.md, MIGRATION.md
|
|
256
284
|
launchd/ timer templates (edit the paths before installing)
|