@shardworks/astrolabe-apparatus 0.1.199 → 0.1.200

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 CHANGED
@@ -63,7 +63,7 @@ interface PlanDoc {
63
63
  observations?: string; // Markdown: refactoring opportunities, risks, conventions
64
64
  scope?: ScopeItem[]; // What's in and what's out
65
65
  decisions?: Decision[]; // Architectural/design decisions with options
66
- spec?: string; // The generated specification (markdown)
66
+ spec?: string; // The generated specification (implementation brief + task manifest)
67
67
  generatedWritId?: string; // ID of the generated mandate/configured writ type
68
68
  createdAt: string;
69
69
  updatedAt: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@shardworks/astrolabe-apparatus",
3
- "version": "0.1.199",
3
+ "version": "0.1.200",
4
4
  "license": "ISC",
5
5
  "repository": {
6
6
  "type": "git",
@@ -20,16 +20,16 @@
20
20
  },
21
21
  "dependencies": {
22
22
  "zod": "4.3.6",
23
- "@shardworks/stacks-apparatus": "0.1.199",
24
- "@shardworks/clerk-apparatus": "0.1.199",
25
- "@shardworks/spider-apparatus": "0.1.199",
26
- "@shardworks/fabricator-apparatus": "0.1.199",
27
- "@shardworks/loom-apparatus": "0.1.199",
28
- "@shardworks/tools-apparatus": "0.1.199"
23
+ "@shardworks/stacks-apparatus": "0.1.200",
24
+ "@shardworks/tools-apparatus": "0.1.200",
25
+ "@shardworks/clerk-apparatus": "0.1.200",
26
+ "@shardworks/loom-apparatus": "0.1.200",
27
+ "@shardworks/fabricator-apparatus": "0.1.200",
28
+ "@shardworks/spider-apparatus": "0.1.200"
29
29
  },
30
30
  "devDependencies": {
31
31
  "@types/node": "25.5.0",
32
- "@shardworks/nexus-core": "0.1.199"
32
+ "@shardworks/nexus-core": "0.1.200"
33
33
  },
34
34
  "files": [
35
35
  "dist",
package/sage-writer.md CHANGED
@@ -155,6 +155,47 @@ in scope. Also list any tempting refactors or improvements
155
155
  that should be deferred.
156
156
  ```
157
157
 
158
+ ### Step 3b: Task Manifest
159
+
160
+ After the brief, append a **task manifest** — a decomposition of the brief into atomic, ordered tasks. The manifest answers "in what order, with what checkpoints" while the brief answers "what to build and why."
161
+
162
+ Produce 3–8 tasks depending on complexity. Each task should be a coherent unit of work — grouping related changes that must be consistent. Task ordering must respect dependencies (e.g., "create the type" before "use the type").
163
+
164
+ #### Manifest format
165
+
166
+ The task manifest is appended to the brief, separated by a blank line. Use this XML structure:
167
+
168
+ ```xml
169
+ <task-manifest>
170
+ <task id="t1">
171
+ <name>Short descriptive name</name>
172
+ <files>predicted file footprint — packages, modules, or paths this task likely touches</files>
173
+ <action>Intent-level instructions — what to do, not how. Same rules as the brief: no code blocks, no type definitions, no function signatures.</action>
174
+ <verify>Executable verification command the implementer can run (e.g., pnpm -w typecheck, pnpm -w test, grep -r "oldName" packages/)</verify>
175
+ <done>Observable outcome — what is true when this task is complete</done>
176
+ </task>
177
+
178
+ <task id="t2">
179
+ <name>...</name>
180
+ <files>...</files>
181
+ <action>...</action>
182
+ <verify>...</verify>
183
+ <done>...</done>
184
+ </task>
185
+ </task-manifest>
186
+ ```
187
+
188
+ #### Manifest rules
189
+
190
+ - **`files` is the planner's predicted blast radius, not an exhaustive list.** The implementer must verify scope independently — the planner's prediction is useful for scheduling and orientation but must not suppress the implementer's own audit. Do not caveat this per-task; it is a standing property of the manifest.
191
+ - **`action` follows the same intent-not-implementation rules as the brief.** No code blocks, no type definitions, no file-by-file instructions. Name the intent and constraints.
192
+ - **`verify` is executable.** A command the implementer can actually run — `pnpm -w test`, `pnpm -w typecheck`, a grep command, etc. Not a description of what to check.
193
+ - **`done` is outcome-level.** An observable result, not an implementation detail. "Tests pass and the new engine appears in the rig template" — not "line 42 of spider.ts has the new entry."
194
+ - **No `type` attribute on tasks.** Tasks are just tasks.
195
+ - **No mandatory terminal verification task.** The task list must be freely appendable — the implementer may discover additional work. Final verification is the engine loop's responsibility, not a fixed task.
196
+ - **Ordering carries sequencing.** Place tasks that create foundations before tasks that build on them. If two tasks are independent, their relative order doesn't matter, but they still get sequential IDs.
197
+ - **Task IDs are sequential** — `t1`, `t2`, `t3`, etc.
198
+
158
199
  #### Brief style rules
159
200
 
160
201
  - **No code blocks showing implementation.** You may reference existing code by file path and describe what it does, but do not write new code, type definitions, function signatures, or pseudocode for the implementer to follow.
@@ -169,7 +210,7 @@ that should be deferred.
169
210
 
170
211
  ### Step 4: Decision Compliance Check
171
212
 
172
- Re-read the plan's decisions (via `plan-show`) and verify the brief you just wrote against every entry. This is a point-by-point audit — not a vibes-level review.
213
+ Re-read the plan's decisions (via `plan-show`) and verify the brief and task manifest you just wrote against every entry. This is a point-by-point audit — not a vibes-level review.
173
214
 
174
215
  For each decision in the plan:
175
216
 
@@ -199,14 +240,22 @@ Validate the brief's completeness by cross-referencing against the inventory and
199
240
  **Scope coverage:**
200
241
  - Every included scope item is addressed in the brief. No scope item should be included but unaddressed.
201
242
 
243
+ **Task manifest coverage:**
244
+ - Every included scope item is covered by at least one task in the manifest.
245
+ - Task ordering respects dependencies — no task references artifacts created by a later task.
246
+ - Every task has an executable `verify` command and an outcome-level `done` criterion.
247
+ - Task `action` content follows the intent-not-implementation rule — no code blocks, no type definitions.
248
+ - The manifest has 3–8 tasks. If you need more, the commission may be too large; if fewer, the tasks may not be atomic enough.
249
+
202
250
  **Implementer perspective:**
203
- Re-read the brief as if you are the implementing agent encountering it cold:
251
+ Re-read the brief and task manifest as if you are the implementing agent encountering it cold:
204
252
  - Do I understand what to build and why?
205
253
  - Do I know the full blast radius — what systems, packages, and concerns this change touches?
206
254
  - Do I know how to verify the work is done?
207
255
  - Are there patterns I can follow?
208
256
  - Is anything excluded that I might have assumed was in scope?
209
257
  - Am I being told HOW to write the code? (If yes — remove it. The brief should not contain implementation instructions.)
258
+ - Does the task manifest give me a clear execution order with verification checkpoints?
210
259
 
211
260
  If any check fails, revise the brief and rewrite using `spec-write`.
212
261
 
@@ -215,7 +264,7 @@ If any check fails, revise the brief and rewrite using `spec-write`.
215
264
  - You do NOT implement the feature. You produce the brief.
216
265
  - You do NOT make decisions. **Ever.** If the plan's decisions don't cover something you need in the brief, write a gaps observation and stop.
217
266
  - You do NOT write implementation details — no code blocks, no type definitions, no function signatures, no file-by-file change lists. Name the intent and constraints; the implementer owns the how.
218
- - You DO read the locked scope, decisions, and inventory. You DO write a complete, intent-focused implementation brief.
267
+ - You DO read the locked scope, decisions, and inventory. You DO write a complete, intent-focused implementation brief followed by a task manifest.
219
268
 
220
269
  ---
221
270
 
@@ -223,5 +272,5 @@ If any check fails, revise the brief and rewrite using `spec-write`.
223
272
 
224
273
  **Important:** Your work is NOT DONE until you submit it using the appropriate tools:
225
274
 
226
- - **`spec-write`** — write the generated brief for a plan
275
+ - **`spec-write`** — write the generated brief and task manifest for a plan
227
276
  - **`observations-write`** — write the analyst observations for a plan (use for gap reporting when decisions don't cover the design space)