@keighleykodric/weeve 0.1.0 → 0.1.1

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/GOVERNANCE.md CHANGED
@@ -19,9 +19,9 @@ This is the natural failure mode of any document collaboration system at scale.
19
19
 
20
20
  Weeve already has the right ownership structure built in:
21
21
 
22
- - Each pack has a domain (compass = strategy, maven = marketing, etc.)
22
+ - Each lane has a domain (compass = strategy, maven = marketing, etc.)
23
23
  - Each contract file has a clear consumer (Pilot reads recommendations)
24
- - Each output has a logical author (the department that owns the pack)
24
+ - Each output has a logical author (the department that owns the lane)
25
25
 
26
26
  What's missing is the *governance overlay* that exposes this structure and enforces it. The good news: 80% of the solution is infrastructure orgs already use. Nothing new needs to be invented.
27
27
 
@@ -56,28 +56,28 @@ Combined with branch protection rules requiring owner approval, this is a hard g
56
56
 
57
57
  Adoption is the only friction. Most orgs using GitHub already use CODEOWNERS for code; using it for the docs folders is the same pattern applied one level over. Weeve should ship a template CODEOWNERS file and make adoption obvious during install.
58
58
 
59
- ## Layer 2 — Pack-declared ownership (small addition)
59
+ ## Layer 2 — Lane-declared ownership (small addition)
60
60
 
61
- Each pack declares its owner, consumers, and contract in a small `pack.yaml`:
61
+ Each lane declares its owner, consumers, and output in a small `lane.yaml`:
62
62
 
63
63
  ```yaml
64
- pack: compass
64
+ lane: compass
65
65
  owner: leadership
66
66
  consumers: [product, engineering, marketing]
67
- contract: compass-recommendations.md
67
+ output: compass-recommendations.md
68
68
  ```
69
69
 
70
70
  This becomes:
71
71
 
72
72
  - A scaffolding template — installing Compass for an org auto-generates the right CODEOWNERS entry, picking up the org's team names from a one-time setup
73
- - A documentation artifact — anyone reading the pack repo can see who owns what
73
+ - A documentation artifact — anyone reading the lane repo can see who owns what
74
74
  - Input to downstream tooling — populates role-based views and routing without extra configuration
75
75
 
76
76
  Small addition; large payoff in adoption clarity.
77
77
 
78
78
  ## Read vs write
79
79
 
80
- Weeve gates *writes*, not reads. Cross-functional alignment depends on cross-pack readability:
80
+ Weeve gates *writes*, not reads. Cross-functional alignment depends on cross-lane readability:
81
81
 
82
82
  - Marketing reads `compass-position` to understand the strategic frame
83
83
  - Leadership reads `ally-recommendations` to understand accessibility commitments
@@ -87,19 +87,19 @@ Everyone can read everything. Only the *authors* are gated.
87
87
 
88
88
  ## Roles and ownership
89
89
 
90
- Each domain pack has an obvious owner (the department whose work it captures). Pilot doesn't — it's the meta-pack. "Owning Pilot" splits into three roles, which collapse to one or two people at startup scale but need to be named so they can separate cleanly as the org grows:
90
+ Each domain lane has an obvious owner (the department whose work it captures). Pilot doesn't — it's the meta-lane. "Owning Pilot" splits into three roles, which collapse to one or two people at startup scale but need to be named so they can separate cleanly as the org grows:
91
91
 
92
92
  | Role | Owns | Small startup | Medium startup |
93
93
  |---|---|---|---|
94
94
  | **Pilot operator** | Runs `/pilot-roadmap` and `/pilot-ship`. Routine work. | Eng lead, platform person, or founder | Platform team |
95
95
  | **Pilot owner** | The roadmap *output* and the prioritization that produces it. Cross-functional priorities. | Founder / CEO | Leadership team |
96
- | **Alignment platform owner** | Weeve config — which packs are installed, scoring weights, CODEOWNERS template, integrations. | Weeve champion | Platform / ops |
96
+ | **Alignment platform owner** | Weeve config — which lanes are installed, scoring weights, CODEOWNERS template, integrations. | Weeve champion | Platform / ops |
97
97
 
98
98
  At small scale (5–50 people), one person is typically all three. That's fine. Naming the roles now lets them split cleanly later without re-architecting.
99
99
 
100
- The departmental pack owners map straightforwardly:
100
+ The departmental lane owners map straightforwardly:
101
101
 
102
- | Pack | Default owner |
102
+ | Lane | Default owner |
103
103
  |---|---|
104
104
  | Compass | Leadership / founder |
105
105
  | Layers+ | Product / design |
@@ -116,9 +116,9 @@ Concrete shape for an org adopting Weeve:
116
116
  ```
117
117
  alignment/ (the org's adoption repo, e.g. github.com/your-org/alignment)
118
118
  ├── .alignment/ <- meta-config; owned by platform
119
- │ ├── config.yaml <- installed packs, scoring weights, integrations
119
+ │ ├── weeve.config <- installed lanes, scoring weights, integrations
120
120
  │ ├── CODEOWNERS <- write permissions per folder
121
- │ └── pack-overrides/ <- org-specific tweaks (rare)
121
+ │ └── lane-overrides/ <- org-specific tweaks (rare)
122
122
  ├── docs/
123
123
  │ ├── compass/ <- @leadership-team
124
124
  │ ├── layers-plus/ <- @product-team
@@ -129,15 +129,15 @@ alignment/ (the org's adoption repo, e.g. github.com/your-org/
129
129
  └── README.md
130
130
  ```
131
131
 
132
- `.alignment/` is the meta-config layer. The platform person owns it; leadership owns the Pilot output (the roadmap); each department owns their pack's folder. CODEOWNERS enforces all of it.
132
+ `.alignment/` is the meta-config layer. The platform person owns it; leadership owns the Pilot output (the roadmap); each department owns their lane's folder. CODEOWNERS enforces all of it.
133
133
 
134
134
  **Splitting `docs/pilot/` ownership:**
135
135
 
136
- The *roadmap content* is leadership's call (these are company priorities). The *operational config* is platform's call (scoring weights, drift thresholds, pack weighting). CODEOWNERS handles this file-by-file:
136
+ The *roadmap content* is leadership's call (these are company priorities). The *operational config* is platform's call (scoring weights, drift thresholds, lane weighting). CODEOWNERS handles this file-by-file:
137
137
 
138
138
  ```
139
139
  docs/pilot/pilot-roadmap.md @leadership-team
140
- docs/pilot/pilot-config.yaml @platform-team
140
+ docs/pilot/pilot-weeve.config @platform-team
141
141
  ```
142
142
 
143
143
  That split mirrors the role split above.
@@ -149,11 +149,11 @@ For an adopting org, configuration spans several layers. Each has a clear owner:
149
149
  | Config layer | What it controls | Owner |
150
150
  |---|---|---|
151
151
  | `.alignment/CODEOWNERS` | Write permissions per folder | Platform |
152
- | `.alignment/config.yaml` | Installed packs, scoring weights, integrations | Platform |
153
- | `pack.yaml` (per pack) | Pack-declared ownership and consumers | Platform (informed by departments) |
154
- | Pack version pinning | Which version of each pack is installed | Platform (via git, like any dependency) |
152
+ | `.alignment/weeve.config` | Installed lanes, dashboard output, scoring weights, integrations | Platform |
153
+ | `lane.yaml` (per lane) | Lane-declared ownership and consumers | Platform (informed by departments) |
154
+ | Lane version pinning | Which version of each lane is installed | Platform (via git, like any dependency) |
155
155
  | Integration credentials | OAuth tokens, webhook URLs | Platform; secured per org policy |
156
- | Pack content (per `docs/<pack>/`) | The actual recommendations and audit files | Department owner per pack |
156
+ | Lane content (per `docs/<lane>/`) | The actual recommendations and audit files | Department owner per lane |
157
157
 
158
158
  The config is owned by whoever owns the repo — typically the same person who already maintains the company's GitHub org or `.github/` folder. This isn't a new role to invent; it's a small addition to an existing responsibility.
159
159
 
package/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # Weeve
1
+ # 🧵 Weeve
2
2
 
3
3
  Cross-functional alignment system. 14+ lanes that audit strategy, product, design, engineering, QA, security, marketing, sales, and UX — then synthesize into one prioritized roadmap.
4
4
 
@@ -77,12 +77,12 @@ Departments without a lane can still contribute. Any team member can feed contex
77
77
  Not sure which lanes to install? Pick a preset that matches your role:
78
78
 
79
79
  ```
80
- npx weeve add core # Designer/strategist starting point
81
- npx weeve add product # Product manager — strategy + design + research
82
- npx weeve add engineering # Engineering lead — delivery + security + QA
83
- npx weeve add strategy # Founder/leadership — strategy + marketing
84
- npx weeve add gtm # Go-to-market — strategy + marketing + sales
85
- npx weeve add all # Everything
80
+ npx @keighleykodric/weeve add core # Designer/strategist starting point
81
+ npx @keighleykodric/weeve add product # Product manager — strategy + design + research
82
+ npx @keighleykodric/weeve add engineering # Engineering lead — delivery + security + QA
83
+ npx @keighleykodric/weeve add strategy # Founder/leadership — strategy + marketing
84
+ npx @keighleykodric/weeve add gtm # Go-to-market — strategy + marketing + sales
85
+ npx @keighleykodric/weeve add all # Everything
86
86
  ```
87
87
 
88
88
  | Preset | Lanes included |
@@ -129,7 +129,7 @@ The schema is the durable asset. Severity uses `🔴 High / 🟡 Medium / 🟢 L
129
129
 
130
130
  Each lane is its own repo. To contribute to a lane, open an issue or PR on that lane's repo.
131
131
 
132
- To build a community lane, see [GOVERNANCE.md](GOVERNANCE.md) for the pack.yaml spec, CODEOWNERS model, and the ship interface contract.
132
+ To build a community lane, see [GOVERNANCE.md](GOVERNANCE.md) for the lane.yaml spec, CODEOWNERS model, and the ship interface contract.
133
133
 
134
134
  ---
135
135
 
package/WORKFLOW.md CHANGED
@@ -1,6 +1,6 @@
1
- # WORKFLOW.md — Cross-pack rhythm
1
+ # WORKFLOW.md — Cross-lane rhythm
2
2
 
3
- How ideas move from raw capture through to shipped code. This is the canonical doc for the cross-pack workflow. All sibling pack READMEs cite this file.
3
+ How ideas move from raw capture through to shipped code. This is the canonical doc for the cross-lane workflow. All sibling lane READMEs cite this file.
4
4
 
5
5
  ---
6
6
 
@@ -15,12 +15,12 @@ How ideas move from raw capture through to shipped code. This is the canonical d
15
15
  ```
16
16
  Your capture tool (notes, daily log, Obsidian, etc.)
17
17
  ↓ raw capture
18
- *-intake skills (per pack)
18
+ *-intake skills (per lane)
19
19
  ↓ scoped rows with stable IDs
20
- Pack main skills (primitives, zones, layers, campaigns)
20
+ Lane main skills (primitives, zones, layers, campaigns)
21
21
  ↓ structured findings
22
- <pack>-recommendations.md (the recommendations file)
23
- ↓ one file per pack in docs/<pack>/
22
+ <lane>-recommendations.md (the recommendations file)
23
+ ↓ one file per lane in docs/<lane>/
24
24
  /pilot-roadmap
25
25
  ↓ merged, tiered, conflict-surfaced
26
26
  docs/pilot/pilot-roadmap.md
@@ -68,11 +68,11 @@ The intake skill will ask clarifying questions if it needs more.
68
68
  /maven-intake → MI-prefixed row → routes to maven-campaign-plan / deliverable
69
69
  ```
70
70
 
71
- One idea may produce intake rows in multiple packs if it spans strategy, product, and channel.
71
+ One idea may produce intake rows in multiple lanes if it spans strategy, product, and channel.
72
72
 
73
- ### Step 3 — Packs process their slice
73
+ ### Step 3 — Lanes process their slice
74
74
 
75
- Each pack's main skills process the intake rows. They write findings to their output files under `docs/<pack>/` in the consumer project.
75
+ Each lane's main skills process the intake rows. They write findings to their output files under `docs/<lane>/` in the consumer project.
76
76
 
77
77
  - Compass primitives + lenses → findings in `compass-*.md`
78
78
  - Layers+ layers → findings in `layers-plus-*.md`
@@ -80,11 +80,11 @@ Each pack's main skills process the intake rows. They write findings to their ou
80
80
  - Rubric zones → findings in `rubric-*.md`
81
81
  - Maven phases → findings in `maven-*.md`
82
82
 
83
- Each pack is autonomous — it doesn't need the others to run.
83
+ Each lane is autonomous — it doesn't need the others to run.
84
84
 
85
85
  ### Step 4 — Recommendations: the shared output format
86
86
 
87
- Each pack writes a `<pack>-recommendations.md` file — the recommendations file Pilot reads. This file is the distilled, tiered, prioritized output of all the pack's work. It's the only file Pilot needs from each pack.
87
+ Each lane writes a `<lane>-recommendations.md` file — the recommendations file Pilot reads. This file is the distilled, tiered, prioritized output of all the lane's work. It's the only file Pilot needs from each lane.
88
88
 
89
89
  ```
90
90
  docs/compass/compass-recommendations.md
@@ -96,9 +96,9 @@ docs/maven/maven-recommendations.md
96
96
 
97
97
  ### Step 5 — Pilot synthesizes: /pilot-roadmap
98
98
 
99
- `/pilot-roadmap` reads all `<pack>-recommendations.md` files present, merges them into one prioritized backlog, surfaces cross-pack conflicts, and writes `docs/pilot/pilot-roadmap.md`.
99
+ `/pilot-roadmap` reads all `<lane>-recommendations.md` files present, merges them into one prioritized backlog, surfaces cross-lane conflicts, and writes `docs/pilot/pilot-roadmap.md`.
100
100
 
101
- Items are tiered: Now → Next → Watch. Cross-pack conflicts are surfaced explicitly — Pilot does not silently pick a side.
101
+ Items are tiered: Now → Next → Watch. Cross-lane conflicts are surfaced explicitly — Pilot does not silently pick a side.
102
102
 
103
103
  ### Step 6 — Pilot ships: /pilot-ship
104
104
 
@@ -116,9 +116,9 @@ A strategic idea decomposed across the full system. This is the canonical illust
116
116
 
117
117
  Existing users send a personalized referral link to a peer who isn't on the platform. Link carries context (referrer ID, prefilled profile, voucher message). Recipient lands on a guided signup that knows who sent them. Referring user sees status updates. Reward: free month per successful referral.
118
118
 
119
- ### Why it spans multiple packs
119
+ ### Why it spans multiple lanes
120
120
 
121
- | Pack | Its slice |
121
+ | Lane | Its slice |
122
122
  | --- | --- |
123
123
  | Compass | Strategic bet: is referral the right growth wedge? Which doctrine supports it? |
124
124
  | Layers+ | Product surface: how does referral become a first-class product object? |
@@ -135,13 +135,13 @@ Existing users send a personalized referral link to a peer who isn't on the plat
135
135
  | 5 | `/layers-plus-strategy`, `/layers-plus-conceptual-model`, `/layers-plus-interaction-flow`, `/layers-plus-surface` | Each layer processes its scoped rows. |
136
136
  | 6 | `/maven-intake` | Channel slice: "Plan referral program announcement + ongoing referral messaging." Writes MI-prefixed row. |
137
137
  | 7 | `/maven-campaign-plan`, `/maven-deliverable` | Process intake. Writes campaign plan and deliverable rows. |
138
- | 8 | `/compass-recommendations`, `/layers-plus-recommendations`, `/maven-recommendations` | Each pack writes its prioritized recommendations. |
138
+ | 8 | `/compass-recommendations`, `/layers-plus-recommendations`, `/maven-recommendations` | Each lane writes its prioritized recommendations. |
139
139
  | 9 | `/pilot-roadmap` | Reads all three recommendations files. Synthesizes one backlog. Referral shows as one tracked initiative with strategy, product, and channel slices. |
140
140
  | 10 | `/pilot-ship` | Picks N items, executes, opens PR. |
141
141
 
142
142
  ### Key pattern
143
143
 
144
- Single-pack ideas exist ("add a tooltip on the time-window picker" → Layers+ only). Most strategic ideas don't. The route-then-decompose pattern handles both:
144
+ Single-lane ideas exist ("add a tooltip on the time-window picker" → Layers+ only). Most strategic ideas don't. The route-then-decompose pattern handles both:
145
145
 
146
146
  - A tooltip change is one intake row.
147
147
  - A growth wedge is six.
@@ -152,7 +152,7 @@ Single-pack ideas exist ("add a tooltip on the time-window picker" → Layers+ o
152
152
 
153
153
  ## First-run order
154
154
 
155
- When setting up the system from scratch, run packs in this order. Each step produces inputs that make the next step richer.
155
+ When setting up the system from scratch, run lanes in this order. Each step produces inputs that make the next step richer.
156
156
 
157
157
  ```
158
158
  1. Compass — establish strategic position and growth doctrine
@@ -167,13 +167,13 @@ When setting up the system from scratch, run packs in this order. Each step prod
167
167
 
168
168
  **Why this order:** Compass sets the strategic frame; Layers+ uses it. Felt runs after Layers+ because its research output (felt-research.md, felt-personas.md) feeds directly into layers-plus-observed-behaviour and layers-plus-user-needs confidence ratings — run Layers+ first to know what research questions are open, then run Felt to answer them. Ally and Rubric are parallel (order between them doesn't matter). Maven reads Compass and Layers+ outputs for positioning context. Pitch runs after Maven — it checks whether the positioning is landing in deals and co-owns the Marketing→Sales lead handoff. Pilot reads all. (Forge/Helm/Verify/Guard can run in parallel after Layers+; see PITCH-LANE.md for the full 11-lane sequencing.)
169
169
 
170
- Packs can be run in any order — this sequence is the recommended path for a first full run, not a hard dependency.
170
+ Lanes can be run in any order — this sequence is the recommended path for a first full run, not a hard dependency.
171
171
 
172
172
  ---
173
173
 
174
- ## Within-pack sequences
174
+ ## Within-lane sequences
175
175
 
176
- Cross-pack order is in the First-run order section above. Within each pack, skills run in a defined sequence. Steps marked _(optional)_ can be skipped on first run and added on re-runs or when the area is relevant.
176
+ Cross-lane order is in the First-run order section above. Within each lane, skills run in a defined sequence. Steps marked _(optional)_ can be skipped on first run and added on re-runs or when the area is relevant.
177
177
 
178
178
  ### Compass
179
179
 
@@ -307,7 +307,7 @@ Zone audits (run weekly or on trigger):
307
307
 
308
308
  ## Cadence
309
309
 
310
- | Pack | Typical cadence |
310
+ | Lane | Typical cadence |
311
311
  | --- | --- |
312
312
  | Ally | Weekly (change detection) |
313
313
  | Rubric | Weekly (drift detection) |
@@ -316,7 +316,7 @@ Zone audits (run weekly or on trigger):
316
316
  | Compass | Quarterly (strategic position) |
317
317
  | Maven | On-demand (campaign-driven) |
318
318
  | Pitch | Weekly (pipeline, conversion, forecast); on-trigger for competitive, pricing, handoff |
319
- | Pilot `/roadmap` | After any pack refreshes its recommendations |
319
+ | Pilot `/roadmap` | After any lane refreshes its recommendations |
320
320
  | Pilot `/ship` | Daily (autonomous batch) |
321
321
 
322
322
  ---
@@ -326,9 +326,9 @@ Zone audits (run weekly or on trigger):
326
326
  `/pilot-roadmap` should be re-run when one of three trigger types fires. Running it on an arbitrary schedule produces noise; running it only when these triggers fire keeps it signal-dense.
327
327
 
328
328
  **Milestone trigger** — re-run after any of:
329
- - A pack completes a run and writes a new `<pack>-recommendations.md`
329
+ - A lane completes a run and writes a new `<lane>-recommendations.md`
330
330
  - A ship batch closes (all Now items shipped → re-read to confirm and promote Next items)
331
- - A new pack is installed or an existing pack is significantly revised
331
+ - A new lane is installed or an existing lane is significantly revised
332
332
 
333
333
  **Signal trigger** — re-run immediately when a Watch item escalates:
334
334
  - Any P-W item fires (competitor announcement, platform shift, external adopter feedback)
@@ -337,18 +337,18 @@ Zone audits (run weekly or on trigger):
337
337
 
338
338
  **Time-based floor** — re-run at minimum once per quarter, even if no milestone or signal trigger has fired. Quarterly runs catch slow drift: Watch items that have aged past their revisit date, Next items whose effort estimates are now stale, constraints that have silently become unblocked.
339
339
 
340
- **Who triggers it:** The Pilot operator (see GOVERNANCE.md § Roles). On teams, any pack owner can request a re-run by opening a PR to update their `<pack>-recommendations.md` and tagging the Pilot operator for review.
340
+ **Who triggers it:** The Pilot operator (see GOVERNANCE.md § Roles). On teams, any lane owner can request a re-run by opening a PR to update their `<lane>-recommendations.md` and tagging the Pilot operator for review.
341
341
 
342
- **What happens after a re-run:** Compare the new `pilot-roadmap.md` diff against the prior version. If any Now items changed tier, or any new conflicts surfaced, notify pack owners before starting the next `/pilot-ship` batch.
342
+ **What happens after a re-run:** Compare the new `pilot-roadmap.md` diff against the prior version. If any Now items changed tier, or any new conflicts surfaced, notify lane owners before starting the next `/pilot-ship` batch.
343
343
 
344
344
  ---
345
345
 
346
- ## Pack independence
346
+ ## Lane independence
347
347
 
348
- Every pack works standalone. The workflow above is opt-in, not required. A designer can run Layers+ alone. A strategist can run Compass alone. Cross-pack references are citations — each pack degrades gracefully when sibling outputs are absent.
348
+ Every lane works standalone. The workflow above is opt-in, not required. A designer can run Layers+ alone. A strategist can run Compass alone. Cross-lane references are citations — each lane degrades gracefully when sibling outputs are absent.
349
349
 
350
- **The one exception:** Pilot needs at least one pack to have written a `<pack>-recommendations.md` file. With no packs writing recommendations, Pilot has nothing to synthesize. This is stated plainly in Pilot's README.
350
+ **The one exception:** Pilot needs at least one lane to have written a `<lane>-recommendations.md` file. With no lanes writing recommendations, Pilot has nothing to synthesize. This is stated plainly in Pilot's README.
351
351
 
352
352
  ---
353
353
 
354
- *Maintained in [keighleykodric/weeve-pilot](https://github.com/keighleykodric/weeve-pilot). All sibling pack READMEs cite this file.*
354
+ *Maintained in [keighleykodric/weeve-pilot](https://github.com/keighleykodric/weeve-pilot). All sibling lane READMEs cite this file.*
package/bin/weeve.js CHANGED
@@ -62,7 +62,15 @@ function installLanes(lanes) {
62
62
  console.log(` + ${lane} — ${LANES[lane]}`);
63
63
  run(`npx skills add ${repo}`);
64
64
  }
65
- console.log(`\nDone. Run /pilot-intro to get started.\n`);
65
+ // Show the right first step based on what was installed
66
+ const FIRST_STEP_ORDER = ["compass", "layers-plus", "felt", "ally", "rubric", "forge", "helm", "verify", "guard", "maven", "pitch", "pilot"];
67
+ const firstLane = FIRST_STEP_ORDER.find((l) => lanes.includes(l));
68
+ if (firstLane && firstLane !== "pilot") {
69
+ console.log(`\nDone. Run /${firstLane}-intro to get started.`);
70
+ console.log(`Then work through your lanes. Run /pilot-intro last — it reads all lane outputs.\n`);
71
+ } else {
72
+ console.log(`\nDone. Run /pilot-intro to get started.\n`);
73
+ }
66
74
  }
67
75
 
68
76
  switch (cmd) {
@@ -112,7 +120,14 @@ switch (cmd) {
112
120
  case "--help":
113
121
  case "-h": {
114
122
  console.log(`
115
- weeve — Cross-functional alignment system
123
+ ██╗ ██╗███████╗███████╗██╗ ██╗███████╗
124
+ ██║ ██║██╔════╝██╔════╝██║ ██║██╔════╝
125
+ ██║ █╗ ██║█████╗ █████╗ ██║ ██║█████╗
126
+ ██║███╗██║██╔══╝ ██╔══╝ ╚██╗ ██╔╝██╔══╝
127
+ ╚███╔███╔╝███████╗███████╗ ╚████╔╝ ███████╗
128
+ ╚══╝╚══╝ ╚══════╝╚══════╝ ╚═══╝ ╚══════╝
129
+
130
+ Cross-functional alignment system
116
131
 
117
132
  Commands:
118
133
  weeve add <lane> [lane2...] Install one or more lanes
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@keighleykodric/weeve",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "description": "Cross-functional alignment system — install and manage Weeve lanes",
5
5
  "bin": {
6
6
  "weeve": "./bin/weeve.js"
@@ -0,0 +1,108 @@
1
+ # CONTRIBUTING.md template for Weeve lanes
2
+
3
+ _Replace `<lane>` with the lane name (e.g., compass, ally, forge). Remove this preamble before publishing._
4
+
5
+ ---
6
+
7
+ # Contributing
8
+
9
+ ## Adding a step
10
+
11
+ Each step is a single `SKILL.md` file in its own directory under `skills/`.
12
+
13
+ **Directory naming:** `NN-<lane>-<name>/` where `NN` is a two-digit prefix for human ordering. The prefix doesn't affect how the installer sorts — it uses the `name` frontmatter field — but it keeps the directory listing readable.
14
+
15
+ **Required frontmatter:**
16
+
17
+ ```yaml
18
+ ---
19
+ name: <lane>-<name>
20
+ description: One sentence. What does this step do and what does it write?
21
+ ---
22
+ ```
23
+
24
+ No quotes around the description value. The `name` field becomes the slash command.
25
+
26
+ ## Step structure
27
+
28
+ Every step should follow this pattern:
29
+
30
+ ```markdown
31
+ ---
32
+ name: <lane>-<name>
33
+ description: ...
34
+ ---
35
+
36
+ # /<lane>-<name>
37
+
38
+ *Brief framing — what question does this step answer?*
39
+
40
+ **Read only, write audit only.** [What it reads. What it writes.]
41
+
42
+ ---
43
+
44
+ ## State detection
45
+
46
+ [Check docs/<lane>/ for existing files and handle clean/partial/old-format states.]
47
+
48
+ ---
49
+
50
+ ## What to audit
51
+
52
+ [Specific things to look for, organised by sub-topic.]
53
+
54
+ ---
55
+
56
+ ## Rating
57
+
58
+ [Strong / Partial / Weak / Manual check required — with definitions.]
59
+
60
+ ---
61
+
62
+ ## Write `<lane>-<name>.md`
63
+
64
+ [Exact output template in a fenced code block.]
65
+
66
+ ---
67
+
68
+ ## After auditing
69
+
70
+ [Confirm the file was written. Brief summary. Recommended next step.]
71
+ ```
72
+
73
+ ## The audit-only rule
74
+
75
+ Steps read source files. They never edit, refactor, or fix anything in the repo being audited. If a step finds a problem, it records it in the output file — it does not fix it. Fixes are the operator's decision.
76
+
77
+ ## Output files
78
+
79
+ Each step writes exactly one file: its designated `<lane>-<name>.md` in `docs/<lane>/`. No other files. No improvised outputs. No splitting results across multiple locations.
80
+
81
+ If a step needs data from another step, it reads that step's output file — it does not re-run the audit.
82
+
83
+ ## Testing a step
84
+
85
+ 1. Make changes in `skills/<NN>-<name>/SKILL.md` (the repo — not the installed copy)
86
+ 2. Copy to the installed location: `cp -r skills/<NN>-<name> ~/.claude/skills/<name>`
87
+ 3. Run the step in a test project that has (or doesn't have) a `docs/<lane>/` folder
88
+ 4. Check the output file matches the template exactly
89
+
90
+ ## Error messages
91
+
92
+ Every error has three parts, one line each:
93
+
94
+ 1. **What happened** — the observed state, factual.
95
+ 2. **Why it matters** — why this state requires a response from the operator.
96
+ 3. **What to do next** — concrete recovery action.
97
+
98
+ Error tone is reassuring, not blaming. Treat the situation as "earlier in the flow than expected", not "operator did the wrong thing".
99
+
100
+ ## Repo structure
101
+
102
+ ```
103
+ skills/ <- step source files (edit these)
104
+ README.md <- user-facing install and usage
105
+ CONTRIBUTING.md <- this file
106
+ LICENSE <- MIT
107
+ lane.yaml <- lane metadata (owner, consumers, output)
108
+ ```
@@ -1,6 +1,6 @@
1
1
  # Lane conventions
2
2
 
3
- Cross-cutting decisions that apply to every lane. Captured here so we don't re-litigate them per lane.
3
+ Cross-cutting decisions that apply to every lane. Captured here to avoid re-litigating them per lane.
4
4
 
5
5
  ---
6
6
 
@@ -100,9 +100,9 @@ Most framework files follow "everyone in the org can read everything; gate write
100
100
  - **Compass** (potentially) — unreleased strategic positioning, M&A considerations, sensitive bets
101
101
  - **Layers+** (potentially) — unreleased product specifications, embargoed launch material
102
102
 
103
- For OSS deployments the repo's existing access model governs — keep the alignment repo private, or move sensitive lane files to a separate private repo with cross-references from the main one. This needs a documented pattern before org rollout.
103
+ For open-source deployments the repo's existing access model governs — keep the alignment repo private, or move sensitive lane files to a separate private repo with cross-references from the main one. A documented pattern should be established before broad rollout.
104
104
 
105
- For SaaS deployments, per-file read access is a deferred feature in `GOVERNANCE.md`.
105
+ Per-file read access is outside the current scope.
106
106
 
107
107
  Lanes producing sensitive output should call out the relevant files explicitly in their own draft (Guard already does this in its CODEOWNERS section). When in doubt, default to "treat as sensitive" — easier to relax later than to retract.
108
108
 
@@ -129,17 +129,17 @@ Intake rows are pre-triage. They move into a zone file when a primitive skill pr
129
129
 
130
130
  ---
131
131
 
132
- ## Tier vocabulary — pack vs Pilot
132
+ ## Tier vocabulary — lanevs Pilot
133
133
 
134
134
  There are two tier vocabularies in Weeve. They mean the same thing but live at different layers.
135
135
 
136
136
  | Context | Vocabulary | Used by |
137
137
  |---|---|---|
138
- | Pack recommendations files | 🔴 High / 🟡 Medium / 🟢 Low | All lanes except Compass |
138
+ | Lane recommendations files | 🔴 High / 🟡 Medium / 🟢 Low | All lanes except Compass |
139
139
  | Compass recommendations file | T1 — Act now / T2 — Plan for / T3 — Watch | Compass only |
140
140
  | Pilot merged roadmap | **Now / Next / Watch** | Pilot only — `/pilot-roadmap` output |
141
141
 
142
- **Rule:** Pack skills write 🔴/🟡/🟢 (or T1/T2/T3 for Compass). Pilot reads them and maps to Now/Next/Watch in the roadmap. Never use Now/Next/Watch in a lane's own recommendations file — that vocabulary belongs to the synthesis layer.
142
+ **Rule:** Lane skills write 🔴/🟡/🟢 (or T1/T2/T3 for Compass). Pilot reads them and maps to Now/Next/Watch in the roadmap. Never use Now/Next/Watch in a lane's own recommendations file — that vocabulary belongs to the synthesis layer.
143
143
 
144
144
  Pilot's tier mapping: 🔴 High → Now, 🟡 Medium → Next, 🟢 Low → Watch. Compass T1 → Now, T2 → Next, T3 → Watch.
145
145
 
@@ -204,4 +204,34 @@ Example:
204
204
 
205
205
  ---
206
206
 
207
- *Draft · docs/shared/lane-conventions.md · 2026-05-25*
207
+ ## Constraints
208
+
209
+ Constraints define what lanes and `/pilot-ship` must not do. They live at two levels:
210
+
211
+ ### Project-level — `weeve-constraints.md`
212
+
213
+ The single source of truth for project-wide guardrails. Lives at the project root. Pilot reads this before every ship batch. All lanes read it during orient and recommendations.
214
+
215
+ Sections:
216
+ - **Active constraints** — current hard limits (resources, legal, strategic)
217
+ - **Deferred items** — work explicitly held with a revisit trigger
218
+ - **What autonomous workers must not do** — explicit prohibitions for ship
219
+
220
+ ### Lane-level — `docs/<lane>/<lane>-constraints.md` (optional)
221
+
222
+ When a lane has specific constraints beyond the project level — time budgets, resource limits, dependencies on other lanes, or temporarily blocked zones — it adds its own constraints file. Lane-level constraints extend the project-level file; they don't replace it.
223
+
224
+ ### Resolution order
225
+
226
+ 1. Ship reads `weeve-constraints.md` first (project-level)
227
+ 2. Ship reads `docs/<lane>/<lane>-constraints.md` if it exists (lane-level)
228
+ 3. Lane-level constraints can tighten but never loosen project-level constraints
229
+
230
+ ### Who writes them
231
+
232
+ - **Project-level:** Pilot operator (extracted from roadmap Constrained section, strategic decisions, or operator input)
233
+ - **Lane-level:** Lane owner or ship (when a lane-specific blocker is identified during a run)
234
+
235
+ ---
236
+
237
+ *reference/conventions.md · 2026-05-25*
@@ -1,10 +1,10 @@
1
- # Engineering pack — contract shape
1
+ # Engineering lane — contract shape
2
2
 
3
3
  _Pilot reference document · Draft 2026-05-23_
4
4
 
5
- This document defines the contract shape for a future engineering pack — what `engineering-recommendations.md` would contain, how findings are tiered, and how Pilot synthesizes it alongside strategy, product, accessibility, design system, and marketing outputs.
5
+ This document defines the contract shape for a future engineering lane — what `engineering-recommendations.md` would contain, how findings are tiered, and how Pilot synthesizes it alongside strategy, product, accessibility, design system, and marketing outputs.
6
6
 
7
- **Purpose:** Claim the dev lane by defining the schema now, before it's filled. Anyone building an engineering pack for this family has a conformant target to hit. ClaudeFast and successor tools become plug-in candidates rather than competitors.
7
+ **Purpose:** Define the schema before filling it. Anyone building an engineering lane has a conformant target to hit. External tools become plug-in candidates rather than competitors.
8
8
 
9
9
  ---
10
10
 
@@ -21,7 +21,7 @@ The engineering domain audits the operator's technical foundation — not whethe
21
21
  | Observability | Can the team detect, diagnose, and recover from failures without tribal knowledge? |
22
22
  | Technical debt | Is debt tracked, prioritised, and scheduled — or just accumulated? |
23
23
 
24
- The engineering pack audits the operator's *shipping system*, not the product's feature set. Stays in its lane.
24
+ The engineering lane audits the *shipping system*, not the product's feature set. It stays in its lane.
25
25
 
26
26
  ---
27
27
 
@@ -60,35 +60,35 @@ ENG-T3-1 · 🟢 Low · Technical debt · No debt register · Debt is invisible
60
60
 
61
61
  ## Pilot synthesis — how it integrates
62
62
 
63
- Pilot reads `engineering-recommendations.md` the same way it reads any pack output: looks for the `## Tier 1`, `## Tier 2`, `## Tier 3` sections, extracts items, merges with other pack findings, and surfaces cross-pack conflicts.
63
+ Pilot reads `engineering-recommendations.md` the same way it reads any lane output: looks for the `## Tier 1`, `## Tier 2`, `## Tier 3` sections, extracts items, merges with other lane findings, and surfaces cross-lane conflicts.
64
64
 
65
- **Expected cross-pack citations:**
65
+ **Expected cross-lane citations:**
66
66
 
67
- | Engineering finding | Cross-pack implication |
67
+ | Engineering finding | Cross-lane implication |
68
68
  |---|---|
69
69
  | No CI pipeline | Ally finding fixes may not ship (no automated gate) — cite in ally-recommendations |
70
70
  | No rollback path | Rubric token changes are risky without rollback — cite in rubric-recommendations |
71
71
  | Secrets in source control | Compass strategic moves gated on security posture — cite in compass-recommendations |
72
72
  | No observability | Layers+ interaction flow findings can't be validated in prod — cite in layers-plus-recommendations |
73
73
 
74
- Pilot surfaces these cross-pack conflicts explicitly in `pilot-roadmap.md` rather than silently picking a side.
74
+ Pilot surfaces these cross-lane conflicts explicitly in `pilot-roadmap.md` rather than silently picking a side.
75
75
 
76
76
  ---
77
77
 
78
78
  ## ID prefix
79
79
 
80
- Engineering pack uses `ENG-` prefix for all finding IDs. Tier label included: `ENG-T1-`, `ENG-T2-`, `ENG-T3-`.
80
+ Engineering lane uses `ENG-` prefix for all finding IDs. Tier label included: `ENG-T1-`, `ENG-T2-`, `ENG-T3-`.
81
81
 
82
- Qualified cross-pack reference format (per `docs/shared/id-prefix-reference.md`): `ENG::ENG-T1-1`.
82
+ Qualified cross-lane reference format (per `docs/shared/id-prefix-reference.md`): `ENG::ENG-T1-1`.
83
83
 
84
84
  ---
85
85
 
86
- ## Why now
86
+ ## Why define the contract early
87
87
 
88
- The Claude Code skills ecosystem had 15,134 repos indexed by May 2026 and is commoditising. Every adjacent tool (ClaudeFast, Copilot Workspace, Cursor) will eventually cover engineering workflows. The contract shape — what `engineering-recommendations.md` *is* — is at Genesis stage. Defining it now means future tools that want to plug into this family have a target to conform to, rather than a format to compete with.
88
+ The contract shape — what `engineering-recommendations.md` *is* — is at Genesis stage. Defining it now means future tools that integrate with the framework have a target to conform to, rather than a format to compete with.
89
89
 
90
- This document is the lane claim. The engineering pack itself can be built by any contributor (internal or external) once the recommendations file shape is clear.
90
+ The engineering lane itself can be built by any contributor once the recommendations file shape is clear.
91
91
 
92
92
  ---
93
93
 
94
- _Maintained in pilot/docs/shared/ · Referenced by: pilot-roadmap skill, compass-recommendations SR4_
94
+ _Maintained in docs/shared/ · Referenced by: pilot-roadmap skill, compass-recommendations SR4_
@@ -4,18 +4,18 @@ _Version: 0.2_
4
4
  _Published: 2026-05-24_
5
5
  _Scope: All lanes — Compass, Layers+, Ally, Rubric, Maven, Forge, Helm, Verify, Guard, Charter, Anchor, Ledger, Roster, Pitch, Pilot_
6
6
 
7
- Finding IDs are pack-local. Each pack uses its own prefix system. This document is the single cross-pack reference so Pilot can synthesise across packs without ID collisions.
7
+ Finding IDs are lane-local. Each lane uses its own prefix system. This document is the single cross-lane reference so Pilot can synthesise across lanes without ID collisions.
8
8
 
9
9
  ---
10
10
 
11
11
  ## Pilot
12
12
 
13
- Pilot generates its own IDs when synthesising across packs.
13
+ Pilot generates its own IDs when synthesising across lanes.
14
14
 
15
15
  | Prefix | Meaning | Example |
16
16
  |---|---|---|
17
17
  | `P-N` | Now batch (current sprint) | `P-N1`, `P-N7` |
18
- | `P-X` | Next / cross-pack backlog item | `P-X5`, `P-X18` |
18
+ | `P-X` | Next / cross-lane backlog item | `P-X5`, `P-X18` |
19
19
  | `P-B` | Backlog (pre-prioritised) | `P-B1` |
20
20
  | `P-W` | Watch signal | `P-W1`, `P-W14` |
21
21
 
@@ -25,7 +25,7 @@ Pilot generates its own IDs when synthesising across packs.
25
25
 
26
26
  Compass uses a two-part ID system: primitive-layer prefixes for raw findings, and `SR` prefixes for synthesised strategic recommendations.
27
27
 
28
- **Primitive findings (within pack):**
28
+ **Primitive findings (within lane):**
29
29
 
30
30
  | Prefix | Layer | Example |
31
31
  |---|---|---|
@@ -205,7 +205,7 @@ Intake IDs are lane-internal (`I<n>`) and not propagated to Pilot.
205
205
 
206
206
  ## Raw capture (pre-intake)
207
207
 
208
- The raw capture step (your notes, daily log, or personal CLI tool) does not generate finding IDs — captured items are routed to the appropriate lane's intake skill, which assigns lane-local IDs.
208
+ The raw capture step (notes, daily log, or CLI tool) does not generate finding IDs — captured items are routed to the appropriate lane's intake skill, which assigns lane-local IDs.
209
209
 
210
210
  ---
211
211
 
@@ -213,13 +213,13 @@ The raw capture step (your notes, daily log, or personal CLI tool) does not gene
213
213
 
214
214
  **Known collision risks:**
215
215
 
216
- | Pack A | Pack B | Colliding prefix | Notes |
216
+ | Lane A | Lane B | Colliding prefix | Notes |
217
217
  |---|---|---|---|
218
218
  | Compass `D` | Layers+ `D` | `D` | Both use `D` for doctrine/domain findings |
219
219
  | Compass `M` | Pilot `P-N` | Low risk | Different contexts |
220
- | Ally T1/T2/T3 | Layers+ T1/T2/T3 | `T1-`, `T2-`, `T3-` | Same tier numbering, different packs — always qualify with pack name when cross-referencing |
220
+ | Ally T1/T2/T3 | Layers+ T1/T2/T3 | `T1-`, `T2-`, `T3-` | Same tier numbering, different lanes — always qualify with lane name when cross-referencing |
221
221
 
222
- **Convention:** When Pilot synthesises across packs, prefix all cited finding IDs with the pack abbreviation:
222
+ **Convention:** When Pilot synthesises across lanes, prefix all cited finding IDs with the lane abbreviation:
223
223
 
224
224
  ```
225
225
  compass:SR3 → Compass strategic recommendation 3
@@ -231,5 +231,5 @@ maven:MR3 → Maven recommendation 3
231
231
 
232
232
  ---
233
233
 
234
- _Closes: Layers+ CM-DS2 🟡 (no cross-pack ID reference)_
234
+ _Closes: Layers+ CM-DS2 🟡 (no cross-lane ID reference)_
235
235
  _Generated: 2026-05-23 · pilot-ship batch_
@@ -4,7 +4,7 @@ _Pilot reference document · 2026-05-23_
4
4
 
5
5
  A lightweight holding area for working concepts — brand theses, competitive framing extensions, half-formed architectural bets — that aren't ready to be roadmap items but are too important to lose in a daily note.
6
6
 
7
- **Problem:** Raw ideas currently land in ad-hoc notes or catch-all files where they get lost or forgotten before they're ready to route anywhere. The pack intake skills (e.g. `/compass-intake`) are too heavy for a working concept — they require enough shape to produce a scoped row with a stable ID.
7
+ **Problem:** Raw ideas currently land in ad-hoc notes or catch-all files where they get lost or forgotten before they're ready to route anywhere. The lane intake skills (e.g. `/compass-intake`) are too heavy for a working concept — they require enough shape to produce a scoped row with a stable ID.
8
8
 
9
9
  ---
10
10
 
@@ -29,14 +29,14 @@ Minimal frontmatter, freeform body. No required fields beyond `date` and `title`
29
29
  ---
30
30
  date: YYYY-MM-DD
31
31
  title: Short idea name
32
- tags: [compass, maven, layers-plus] # optional — which packs this might route to
32
+ tags: [compass, maven, layers-plus] # optional — which lanes this might route to
33
33
  status: raw | maturing | ready # default: raw
34
34
  ---
35
35
 
36
36
  [Freeform text. No structure required. Write what you'd tell someone in a hallway.]
37
37
 
38
38
  ## Possible next step
39
- [Optional. One line on what would make this ready to route to a pack intake skill.]
39
+ [Optional. One line on what would make this ready to route to a lane intake skill.]
40
40
  ```
41
41
 
42
42
  **Status values:**
@@ -45,7 +45,7 @@ status: raw | maturing | ready # default: raw
45
45
  |---|---|
46
46
  | `raw` | Just captured. May be wrong or incomplete. Don't act on it yet. |
47
47
  | `maturing` | Being developed. Some validation in progress. |
48
- | `ready` | Has enough shape to route to a pack intake skill. |
48
+ | `ready` | Has enough shape to route to a lane intake skill. |
49
49
 
50
50
  ---
51
51
 
@@ -53,10 +53,10 @@ status: raw | maturing | ready # default: raw
53
53
 
54
54
  An idea is ready to route when it can answer two questions:
55
55
 
56
- 1. **Which pack owns the primary slice?** (Compass = strategic bet, Layers+ = product surface, Ally = accessibility concern, Rubric = design system gap, Maven = marketing angle)
56
+ 1. **Which lane owns the primary slice?** (Compass = strategic bet, Layers+ = product surface, Ally = accessibility concern, Rubric = design system gap, Maven = marketing angle)
57
57
  2. **What's the one-sentence version?** (Enough to write an intake row)
58
58
 
59
- When ready, run the relevant pack intake skill:
59
+ When ready, run the relevant lane intake skill:
60
60
 
61
61
  ```
62
62
  /compass-intake → strategic ideas, market bets, positioning moves
@@ -66,7 +66,7 @@ When ready, run the relevant pack intake skill:
66
66
  /maven-intake → marketing ideas, campaign angles
67
67
  ```
68
68
 
69
- After routing, update the idea file's status to `ready` and note which pack received it. The idea file becomes the origin story for the eventual roadmap item.
69
+ After routing, update the idea file's status to `ready` and note which lane received it. The idea file becomes the origin story for the eventual roadmap item.
70
70
 
71
71
  ---
72
72
 
@@ -77,8 +77,8 @@ After routing, update the idea file's status to `ready` and note which pack rece
77
77
  | Fully-formed strategic intent | `/compass-intake` directly |
78
78
  | Half-formed working concept | `context/ideas/` |
79
79
  | Daily capture (tasks, decisions) | Your daily note or capture tool |
80
- | Research findings with a clear home | `/research` in the relevant pack |
81
- | Confirmed roadmap item | Pack intake → pack recommendations → pilot roadmap |
80
+ | Research findings with a clear home | `/research` in the relevant lane |
81
+ | Confirmed roadmap item | Lane intake → lane recommendations → pilot roadmap |
82
82
 
83
83
  ---
84
84
 
@@ -96,4 +96,4 @@ This creates a traceable origin trail: idea → intake row → roadmap item →
96
96
 
97
97
  ---
98
98
 
99
- _Maintained in pilot/docs/shared/ · Pattern for: all pilot-family projects_
99
+ _Maintained in docs/shared/ · Pattern for: all Weeve-framework projects_
@@ -0,0 +1,55 @@
1
+ # README template for Weeve lanes
2
+
3
+ _Use this template when creating or standardizing a lane README. Replace all `<placeholders>` with lane-specific content. Remove this preamble before publishing._
4
+
5
+ ---
6
+
7
+ # <Lane Name>
8
+
9
+ <One sentence: what this lane does and why it exists.>
10
+
11
+ ## Install
12
+
13
+ ```
14
+ npx skills add keighleykodric/weeve-<lane>
15
+ ```
16
+
17
+ ## What it does
18
+
19
+ <2-3 sentences expanding on the one-liner. What does the lane audit/produce? What's the outcome for the operator?>
20
+
21
+ ## Skills
22
+
23
+ | Skill | What it does |
24
+ |---|---|
25
+ | `/<lane>-intro` | First-run onboarding — scope, context, routes to intake |
26
+ | `/<lane>-intake` | Capture raw requests and route to the right zone |
27
+ | `/<lane>-orient` | Diagnostic sweep — identifies the bottleneck zone |
28
+ | ... | ... |
29
+ | `/<lane>-recommendations` | Prioritized findings — the file Pilot reads |
30
+ | `/<lane>-dashboard` | Visual HTML summary of findings |
31
+ | `/<lane>-tickets` | Generate tickets from findings |
32
+ | `/<lane>-triage` | Walk findings — mark closed, deferred, dismissed |
33
+ | `/<lane>-check` | Verify closed findings are actually fixed |
34
+
35
+ ## Where to start
36
+
37
+ 1. Run `/<lane>-intro` — captures scope and context
38
+ 2. Run `/<lane>-orient` — identifies where to focus
39
+ 3. Run zone skills as directed
40
+ 4. Run `/<lane>-recommendations` — produces the prioritized output
41
+
42
+ ## How it fits
43
+
44
+ <Lane Name> writes `<lane>-recommendations.md`. Pilot reads it alongside all other lane outputs and synthesizes a single roadmap. See [WORKFLOW.md](https://github.com/keighleykodric/weeve/blob/main/WORKFLOW.md) for the full cross-lane rhythm.
45
+
46
+ ### Sibling lanes
47
+
48
+ <List lanes this one cites or is cited by — not dependencies, just cross-references.>
49
+
50
+ - **[Compass](https://github.com/keighleykodric/weeve-compass)** — <one line on the relationship>
51
+ - **[Pilot](https://github.com/keighleykodric/weeve-pilot)** — reads `<lane>-recommendations.md` for roadmap synthesis
52
+
53
+ ## License
54
+
55
+ MIT
@@ -7,19 +7,19 @@ status: active
7
7
 
8
8
  # Recommendations schema — v0.3
9
9
 
10
- *Authoritative versioned spec for the recommendations file format that all packs produce and Pilot reads.*
10
+ *Authoritative versioned spec for the recommendations file format that all lanes produce and Pilot reads.*
11
11
 
12
- This document is the authoritative spec. Every pack's recommendations skill writes a file that conforms to this shape. `/pilot-roadmap` reads those files and trusts them — it does not re-evaluate upstream sources. If a pack's output diverges from this spec, Pilot's merge step degrades silently.
12
+ This document is the authoritative spec. Every lane's recommendations skill writes a file that conforms to this shape. `/pilot-roadmap` reads those files and trusts them — it does not re-evaluate upstream sources. If a lane's output diverges from this spec, Pilot's merge step degrades silently.
13
13
 
14
14
  ---
15
15
 
16
16
  ## 1. File naming convention
17
17
 
18
18
  ```
19
- docs/<pack>/<pack>-recommendations.md
19
+ docs/<lane>/<lane>-recommendations.md
20
20
  ```
21
21
 
22
- | Pack | File path |
22
+ | Lane | File path |
23
23
  |---|---|
24
24
  | Compass | `docs/compass/compass-recommendations.md` |
25
25
  | Layers+ | `docs/layers-plus/layers-plus-recommendations.md` |
@@ -52,9 +52,9 @@ Every recommendations file must contain these sections, in this order:
52
52
  6. **Manual checks required** — findings that need live testing or operator judgement
53
53
  7. **Out of scope / accepted exceptions** — deferred items with rationale and revisit trigger
54
54
 
55
- Optional sections (present in some packs, allowed in all):
55
+ Optional sections (present in some lanes, allowed in all):
56
56
 
57
- - **Cross-pillar citations** — where this pack's findings link to other packs
57
+ - **Cross-pillar citations** — where this lane's findings link to other lanes
58
58
  - **Validation gaps** (Maven) — assumptions under 🔴 / 🟡 items not yet tested
59
59
  - **Evidence trace** (Compass) — source row IDs, confidence ratings, external signal count
60
60
 
@@ -67,14 +67,14 @@ Finding IDs must be stable across re-runs. If a finding is re-run and the underl
67
67
  ### Format
68
68
 
69
69
  ```
70
- <PACK-PREFIX><N>
70
+ <LANE-PREFIX><N>
71
71
  ```
72
72
 
73
- Where `N` is a monotonically increasing integer within the pack's namespace. IDs are never reused for a different finding.
73
+ Where `N` is a monotonically increasing integer within the lane's namespace. IDs are never reused for a different finding.
74
74
 
75
- ### Registered pack prefixes
75
+ ### Registered lane prefixes
76
76
 
77
- | Pack | Prefix | Example |
77
+ | Lane | Prefix | Example |
78
78
  |---|---|---|
79
79
  | Compass / Strategy | `SR` | SR1, SR2 |
80
80
  | Layers+ / Tiers | `T1-`, `T2-`, `T3-` | T1-1, T2-3 |
@@ -92,9 +92,9 @@ Where `N` is a monotonically increasing integer within the pack's namespace. IDs
92
92
  | Pitch | `PR` | PR1, PR2 |
93
93
  | Felt | `FL` | FL1, FL2 |
94
94
 
95
- **Note on Layers+ and Ally sharing the `T1-`/`T2-`/`T3-` prefix:** both packs use tier-relative IDs rather than a pack-scoped prefix. When Pilot reads both files, it disambiguates by source file. Verbose mode tags items with their pillar: `[layers-plus:T1-1]` vs `[ally:T1-1]`. This is a known namespace collision — a future schema version may assign distinct prefixes to one or both packs.
95
+ **Note on Layers+ and Ally sharing the `T1-`/`T2-`/`T3-` prefix:** both lanes use tier-relative IDs rather than a lane-scoped prefix. When Pilot reads both files, it disambiguates by source file. Verbose mode tags items with their pillar: `[layers-plus:T1-1]` vs `[ally:T1-1]`. This is a known namespace collision — a future schema version may assign distinct prefixes to one or both lanes.
96
96
 
97
- **Registering a new pack prefix:** add a row to the table above and increment the schema version.
97
+ **Registering a new laneprefix:** add a row to the table above and increment the schema version.
98
98
 
99
99
  ---
100
100
 
@@ -110,13 +110,13 @@ id · severity · location · what's wrong · what to do
110
110
 
111
111
  | Field | Required | Description |
112
112
  |---|---|---|
113
- | **id** | Yes | Stable pack-prefixed ID (see §3). Never changes between re-runs for the same finding. |
114
- | **severity** | Yes | 🔴 High / 🟡 Medium / 🟢 Low — consistent scale across all packs (see §5). |
113
+ | **id** | Yes | Stable lane-prefixed ID (see §3). Never changes between re-runs for the same finding. |
114
+ | **severity** | Yes | 🔴 High / 🟡 Medium / 🟢 Low — consistent scale across all lanes (see §5). |
115
115
  | **location** | Yes | File path, skill name, zone, route, or surface. Must be specific — not "everywhere" or "the codebase". |
116
116
  | **what's wrong** | Yes | One sentence describing the gap, drift, or risk. Describes the current state, not the desired state. |
117
117
  | **what to do** | Yes | One concrete action sentence. Describes the fix or move, not the problem. |
118
118
  | **evidence trace** | Optional | Source row IDs, confidence ratings, external signal count. Required for Compass lens skills. Recommended for any finding claiming Validated confidence. |
119
- | **gate-ship** | Optional | `true` / `false` (default: `false`). Set to `true` on findings that must be resolved before `/pilot-ship` proceeds. Only Guard and Verify set this by default; any lane may set it. `/pilot-ship` parses this field across all packs — do not use alternative names (`block`, `block-ship`, etc.). |
119
+ | **gate-ship** | Optional | `true` / `false` (default: `false`). Set to `true` on findings that must be resolved before `/pilot-ship` proceeds. Only Guard and Verify set this by default; any lane may set it. `/pilot-ship` parses this field across all lanes — do not use alternative names (`block`, `block-ship`, etc.). |
120
120
 
121
121
  ### Heading-block format (Compass / Maven)
122
122
 
@@ -140,7 +140,7 @@ The `**Move:**` field satisfies **what to do**. The heading title + `**Move:**`
140
140
  | T1-1 | 🔴 High | [zone / file / path] | [one sentence — what's wrong] | [one sentence — what to fix] | M |
141
141
  ```
142
142
 
143
- The columns map directly to the canonical shape. "Effort" is an extension field — allowed in all packs, not required by the schema.
143
+ The columns map directly to the canonical shape. "Effort" is an extension field — allowed in all lanes, not required by the schema.
144
144
 
145
145
  ---
146
146
 
@@ -166,7 +166,7 @@ Use these terms consistently in evidence traces and frontmatter:
166
166
  | **Working** | Hypothesis that has been partially tested or is grounded in consistent observed behaviour. T2 default. |
167
167
  | **Hypothesis** | Assumed but not yet tested. Cannot anchor a T1 finding without at least one Validated or Working co-source. |
168
168
 
169
- **Frontmatter usage (Maven pattern, optional for other packs):**
169
+ **Frontmatter usage (Maven pattern, optional for other lanes):**
170
170
 
171
171
  ```yaml
172
172
  foundation: validated | hypothesis | missing
@@ -181,27 +181,27 @@ Confidence is expressed in the evidence trace field: `"P2 (Hypothesis, Central)
181
181
 
182
182
  ## 7. What Pilot reads — how `/pilot-roadmap` consumes this file
183
183
 
184
- `/pilot-roadmap` reads each pack's recommendations file as the authoritative source. It does not re-evaluate the upstream sources. The recommendations file is the unit of trust.
184
+ `/pilot-roadmap` reads each lane's recommendations file as the authoritative source. It does not re-evaluate the upstream sources. The recommendations file is the unit of trust.
185
185
 
186
186
  **Extraction:** Pilot extracts per finding: ID, severity/tier, title, brief description, evidence trace, status (open / in-flight / closed / blocked). The canonical finding shape (§4) makes this extraction deterministic.
187
187
 
188
188
  **Tier mapping:**
189
189
 
190
- | Pack output | Roadmap tier |
190
+ | Lane output | Roadmap tier |
191
191
  |---|---|
192
192
  | Compass T1 (Act now) | **Now** |
193
- | 🔴 High from any other pack | **Now** |
193
+ | 🔴 High from any other lane| **Now** |
194
194
  | Compass T2 (Plan for) | **Next** |
195
- | 🟡 Medium from any other pack | **Next** |
195
+ | 🟡 Medium from any other lane| **Next** |
196
196
  | Compass T3 (Watch) | **Watch** |
197
- | 🟢 Low from any other pack | **Watch** |
197
+ | 🟢 Low from any other lane| **Watch** |
198
198
  | Closed or Retired | Dropped |
199
199
 
200
200
  **Validated-input gate:** if an item would land in **Now** but its evidence trace is Hypothesis-only or Assumed-only, Pilot demotes it to **Next** and adds a note. This gate is inherited from `/compass-recommendations` and applies across all pillars.
201
201
 
202
- **De-duplication:** if two packs surface findings that trace to the same source row or gap, Pilot collapses them into one roadmap item and notes that multiple pillars surfaced it. It does not write two items that rest on the same signal.
202
+ **De-duplication:** if two lanes surface findings that trace to the same source row or gap, Pilot collapses them into one roadmap item and notes that multiple pillars surfaced it. It does not write two items that rest on the same signal.
203
203
 
204
- **Conflict detection:** if two packs recommend opposing actions on the same surface, Pilot surfaces the conflict in the **Conflicts surfaced** section and does not silently pick a side.
204
+ **Conflict detection:** if two lanes recommend opposing actions on the same surface, Pilot surfaces the conflict in the **Conflicts surfaced** section and does not silently pick a side.
205
205
 
206
206
  **Malformed file:** if a recommendations file is structurally unreadable (Pilot cannot extract IDs, tiers, or evidence), Pilot stops and surfaces the parse error. It does not write a degraded roadmap.
207
207
 
@@ -334,7 +334,7 @@ Registered prefixes: `CR` (Charter), `AR` (Anchor), `LR` (Ledger), `RO` (Roster)
334
334
 
335
335
  ### Summary table
336
336
 
337
- | Pack | ID | Severity | Location | What's wrong | What to do | Evidence trace | Status |
337
+ | Lane | ID | Severity | Location | What's wrong | What to do | Evidence trace | Status |
338
338
  |---|---|---|---|---|---|---|---|
339
339
  | Compass | Conformant | Conformant | Conformant (lens-level) | Conformant | Conformant | Required | **Conformant** |
340
340
  | Layers+ | Conformant | Conformant | Partial (layer name only) | **Absent** | Conformant | Not present | **Diverges — missing Finding column** |
@@ -353,11 +353,11 @@ Registered prefixes: `CR` (Charter), `AR` (Anchor), `LR` (Ledger), `RO` (Roster)
353
353
 
354
354
  | Version | Date | Change |
355
355
  |---|---|---|
356
- | v0.1 | 2026-05-22 | Initial publication — making the implicit schema explicit. No changes to pack skill specs in this version; conformance gaps noted above are addressed as follow-on work. |
356
+ | v0.1 | 2026-05-22 | Initial publication — making the implicit schema explicit. No changes to laneskill specs in this version; conformance gaps noted above are addressed as follow-on work. |
357
357
  | v0.2 | 2026-05-24 | Register prefixes for 9 new lanes (FR/HR/VR/GR/CR/AR/LR/RO/PR). Add `gate-ship` field to canonical finding shape §4. Add §1 file paths and §8 conformance entries for all new lanes. Reconciliation divergences (D1–D7) documented in four-lane-reconciliation.md; skill-level fixes tracked separately. |
358
358
  | v0.3 | 2026-05-24 | Register `FL` prefix for Felt (UX research lane). |
359
359
 
360
360
  ---
361
361
 
362
362
  _Maintained in `pilot` repo · `docs/shared/recommendations-schema.md`_
363
- _Next review: when any pack skill spec is updated to change its finding table shape, or when a new pack is added._
363
+ _Next review: when any laneskill spec is updated to change its finding table shape, or when a new laneis added._