@shardworks/astrolabe-apparatus 0.1.291 → 0.1.292
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/package.json +10 -10
- package/sage-primer-attended.md +12 -4
- package/sage-primer-reader.md +12 -4
- package/sage-primer-solo.md +12 -4
- package/sage-writer.md +39 -15
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@shardworks/astrolabe-apparatus",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.292",
|
|
4
4
|
"license": "ISC",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -20,18 +20,18 @@
|
|
|
20
20
|
},
|
|
21
21
|
"dependencies": {
|
|
22
22
|
"zod": "4.3.6",
|
|
23
|
-
"@shardworks/
|
|
24
|
-
"@shardworks/
|
|
25
|
-
"@shardworks/clerk-apparatus": "0.1.
|
|
26
|
-
"@shardworks/spider-apparatus": "0.1.
|
|
27
|
-
"@shardworks/fabricator-apparatus": "0.1.
|
|
28
|
-
"@shardworks/loom-apparatus": "0.1.
|
|
29
|
-
"@shardworks/
|
|
30
|
-
"@shardworks/
|
|
23
|
+
"@shardworks/tools-apparatus": "0.1.292",
|
|
24
|
+
"@shardworks/stacks-apparatus": "0.1.292",
|
|
25
|
+
"@shardworks/clerk-apparatus": "0.1.292",
|
|
26
|
+
"@shardworks/spider-apparatus": "0.1.292",
|
|
27
|
+
"@shardworks/fabricator-apparatus": "0.1.292",
|
|
28
|
+
"@shardworks/loom-apparatus": "0.1.292",
|
|
29
|
+
"@shardworks/clockworks-apparatus": "0.1.292",
|
|
30
|
+
"@shardworks/animator-apparatus": "0.1.292"
|
|
31
31
|
},
|
|
32
32
|
"devDependencies": {
|
|
33
33
|
"@types/node": "25.5.0",
|
|
34
|
-
"@shardworks/nexus-core": "0.1.
|
|
34
|
+
"@shardworks/nexus-core": "0.1.292"
|
|
35
35
|
},
|
|
36
36
|
"files": [
|
|
37
37
|
"dist",
|
package/sage-primer-attended.md
CHANGED
|
@@ -73,7 +73,13 @@ When citing click-derived reasoning in a decision's `rationale`, reference the c
|
|
|
73
73
|
|
|
74
74
|
**Goal:** Map the landscape the change operates in. Understand scope, blast radius, cross-cutting concerns, and existing patterns. Pure reading — no design thinking yet.
|
|
75
75
|
|
|
76
|
-
Your inventory feeds a downstream spec writer who produces **intent-based briefs**
|
|
76
|
+
Your inventory feeds a downstream spec writer who produces **intent-based briefs** — directing *what* to build and *why*, not prescribing *how* the implementer should write each function. The implementer still owns implementation choices.
|
|
77
|
+
|
|
78
|
+
But "intent, not implementation" does **not** mean "no reference material." **Inline excerpts of existing code, types, and documentation** the implementer will use as input — type signatures of APIs they'll call, pattern shapes of sibling features they'll mirror, the §-section of a doc the change will edit.
|
|
79
|
+
|
|
80
|
+
The dividing line is **reference, not prescription** — inline a type signature so the implementer knows the API surface; do **not** write the function body for them. Inline a pattern shape so they can mirror it; do **not** specify the file-by-file changes. Reference excerpts inform the implementer's own audit; they do not replace it.
|
|
81
|
+
|
|
82
|
+
When you cite a file that the implementer needs no further content from (referenced only to establish blast radius or as a pointer, but no excerpt is needed and no changes are expected), annotate it with **`Do not Read.`** explicitly.
|
|
77
83
|
|
|
78
84
|
**Scope and blast radius:**
|
|
79
85
|
- Which packages, plugins, and systems does this change affect?
|
|
@@ -81,10 +87,12 @@ Your inventory feeds a downstream spec writer who produces **intent-based briefs
|
|
|
81
87
|
- When the change affects a pipeline (data flows through A → B → C), trace the full chain — not just the file being modified, but the upstream producer and downstream consumer. Read the actual implementation at each stage, not just the interface.
|
|
82
88
|
|
|
83
89
|
**Key types and interfaces:**
|
|
84
|
-
- Identify the types and interfaces central to the change
|
|
90
|
+
- Identify the types and interfaces central to the change and **inline their actual signatures** in the inventory, with a one-line role description alongside each.
|
|
91
|
+
- For very large or peripheral types where inlining would itself be expensive, summarize the shape and link — but default to inlining when the implementer will need to use the type to do the work.
|
|
85
92
|
|
|
86
93
|
**Adjacent patterns:**
|
|
87
|
-
- How do sibling features or neighboring apparatus handle the same kind of problem? Read comparable implementations if they exist
|
|
94
|
+
- How do sibling features or neighboring apparatus handle the same kind of problem? Read 2-3 comparable implementations if they exist. **Inline a representative pattern excerpt** (typically 20-40 lines) showing the shape the new feature should mirror, with a note like "apply this shape to `{target}`."
|
|
95
|
+
- If the feature is novel with no clear siblings, note that — the absence of precedent is itself useful information for design decisions.
|
|
88
96
|
- What conventions does the codebase use for this kind of thing? (File layout, naming, error handling, config shape)
|
|
89
97
|
|
|
90
98
|
**Existing context:**
|
|
@@ -95,7 +103,7 @@ Your inventory feeds a downstream spec writer who produces **intent-based briefs
|
|
|
95
103
|
- Note any places where documentation describes different behavior than the code implements. Capture them in the inventory as data points; do NOT lift to observations unless they meet the *Observations* bar (real bug, real cross-cutting design Q, real consolidation, real hidden-migration evidence).
|
|
96
104
|
- **Tag drift on files the commission will already be touching as `concurrent doc updates needed`** — the implementing artificer will fix this inline as part of the work. Do not separately lift it as an observation.
|
|
97
105
|
|
|
98
|
-
This is a working document — rough, thorough, and unpolished. Do not spend effort on formatting or prose quality. Its value is in completeness of *coverage* (every relevant system identified, every cross-cutting concern surfaced) and analytical orientation (downstream agents can form decisions from your map)
|
|
106
|
+
This is a working document — rough, thorough, and unpolished. Do not spend effort on formatting or prose quality. Its value is in completeness of *coverage* (every relevant system identified, every cross-cutting concern surfaced), inlined reference material, and analytical orientation (downstream agents can form decisions from your map).
|
|
99
107
|
|
|
100
108
|
---
|
|
101
109
|
|
package/sage-primer-reader.md
CHANGED
|
@@ -41,7 +41,13 @@ You also have the standard file-reading tools (Read, Glob, Grep) for exploring t
|
|
|
41
41
|
|
|
42
42
|
**Goal:** Map the landscape the change operates in. Understand scope, blast radius, cross-cutting concerns, and existing patterns. Pure reading — no design thinking yet.
|
|
43
43
|
|
|
44
|
-
Your inventory feeds a downstream scoping primer and spec writer who produce **intent-based briefs**
|
|
44
|
+
Your inventory feeds a downstream scoping primer and spec writer who produce **intent-based briefs** — directing *what* to build and *why*, not prescribing *how* the implementer should write each function. The implementer still owns implementation choices.
|
|
45
|
+
|
|
46
|
+
But "intent, not implementation" does **not** mean "no reference material." **Inline excerpts of existing code, types, and documentation** the implementer will use as input — type signatures of APIs they'll call, pattern shapes of sibling features they'll mirror, the §-section of a doc the change will edit.
|
|
47
|
+
|
|
48
|
+
The dividing line is **reference, not prescription** — inline a type signature so the implementer knows the API surface; do **not** write the function body for them. Inline a pattern shape so they can mirror it; do **not** specify the file-by-file changes. Reference excerpts inform the implementer's own audit; they do not replace it.
|
|
49
|
+
|
|
50
|
+
When you cite a file that the implementer needs no further content from (referenced only to establish blast radius or as a pointer, but no excerpt is needed and no changes are expected), annotate it with **`Do not Read.`** explicitly.
|
|
45
51
|
|
|
46
52
|
**Scope and blast radius:**
|
|
47
53
|
- Which packages, plugins, and systems does this change affect?
|
|
@@ -49,10 +55,12 @@ Your inventory feeds a downstream scoping primer and spec writer who produce **i
|
|
|
49
55
|
- When the change affects a pipeline (data flows through A → B → C), trace the full chain — not just the file being modified, but the upstream producer and downstream consumer. Read the actual implementation at each stage, not just the interface.
|
|
50
56
|
|
|
51
57
|
**Key types and interfaces:**
|
|
52
|
-
- Identify the types and interfaces central to the change
|
|
58
|
+
- Identify the types and interfaces central to the change and **inline their actual signatures** in the inventory, with a one-line role description alongside each.
|
|
59
|
+
- For very large or peripheral types where inlining would itself be expensive, summarize the shape and link — but default to inlining when the implementer will need to use the type to do the work.
|
|
53
60
|
|
|
54
61
|
**Adjacent patterns:**
|
|
55
|
-
- How do sibling features or neighboring apparatus handle the same kind of problem? Read comparable implementations if they exist
|
|
62
|
+
- How do sibling features or neighboring apparatus handle the same kind of problem? Read 2-3 comparable implementations if they exist. **Inline a representative pattern excerpt** (typically 20-40 lines) showing the shape the new feature should mirror, with a note like "apply this shape to `{target}`."
|
|
63
|
+
- If the feature is novel with no clear siblings, note that — the absence of precedent is itself useful information for design decisions.
|
|
56
64
|
- What conventions does the codebase use for this kind of thing? (File layout, naming, error handling, config shape)
|
|
57
65
|
|
|
58
66
|
**Existing context:**
|
|
@@ -72,7 +80,7 @@ Your inventory feeds a downstream scoping primer and spec writer who produce **i
|
|
|
72
80
|
- **`live`** — still open. Flag as a dependency in the inventory if the brief's approach hinges on it.
|
|
73
81
|
- **`dropped`** — abandoned; context only, not load-bearing.
|
|
74
82
|
|
|
75
|
-
This is a working document — rough, thorough, and unpolished. Do not spend effort on formatting or prose quality. Its value is in completeness of *coverage* (every relevant system identified, every cross-cutting concern surfaced) and analytical orientation (downstream agents can form decisions from your map)
|
|
83
|
+
This is a working document — rough, thorough, and unpolished. Do not spend effort on formatting or prose quality. Its value is in completeness of *coverage* (every relevant system identified, every cross-cutting concern surfaced), inlined reference material, and analytical orientation (downstream agents can form decisions from your map).
|
|
76
84
|
|
|
77
85
|
### Boundaries
|
|
78
86
|
|
package/sage-primer-solo.md
CHANGED
|
@@ -73,7 +73,13 @@ When citing click-derived reasoning in a decision's `rationale`, reference the c
|
|
|
73
73
|
|
|
74
74
|
**Goal:** Map the landscape the change operates in. Understand scope, blast radius, cross-cutting concerns, and existing patterns. Pure reading — no design thinking yet.
|
|
75
75
|
|
|
76
|
-
Your inventory feeds a downstream spec writer who produces **intent-based briefs**
|
|
76
|
+
Your inventory feeds a downstream spec writer who produces **intent-based briefs** — directing *what* to build and *why*, not prescribing *how* the implementer should write each function. The implementer still owns implementation choices.
|
|
77
|
+
|
|
78
|
+
But "intent, not implementation" does **not** mean "no reference material." **Inline excerpts of existing code, types, and documentation** the implementer will use as input — type signatures of APIs they'll call, pattern shapes of sibling features they'll mirror, the §-section of a doc the change will edit.
|
|
79
|
+
|
|
80
|
+
The dividing line is **reference, not prescription** — inline a type signature so the implementer knows the API surface; do **not** write the function body for them. Inline a pattern shape so they can mirror it; do **not** specify the file-by-file changes. Reference excerpts inform the implementer's own audit; they do not replace it.
|
|
81
|
+
|
|
82
|
+
When you cite a file that the implementer needs no further content from (referenced only to establish blast radius or as a pointer, but no excerpt is needed and no changes are expected), annotate it with **`Do not Read.`** explicitly.
|
|
77
83
|
|
|
78
84
|
**Scope and blast radius:**
|
|
79
85
|
- Which packages, plugins, and systems does this change affect?
|
|
@@ -81,10 +87,12 @@ Your inventory feeds a downstream spec writer who produces **intent-based briefs
|
|
|
81
87
|
- When the change affects a pipeline (data flows through A → B → C), trace the full chain — not just the file being modified, but the upstream producer and downstream consumer. Read the actual implementation at each stage, not just the interface.
|
|
82
88
|
|
|
83
89
|
**Key types and interfaces:**
|
|
84
|
-
- Identify the types and interfaces central to the change
|
|
90
|
+
- Identify the types and interfaces central to the change and **inline their actual signatures** in the inventory, with a one-line role description alongside each.
|
|
91
|
+
- For very large or peripheral types where inlining would itself be expensive, summarize the shape and link — but default to inlining when the implementer will need to use the type to do the work.
|
|
85
92
|
|
|
86
93
|
**Adjacent patterns:**
|
|
87
|
-
- How do sibling features or neighboring apparatus handle the same kind of problem? Read comparable implementations if they exist
|
|
94
|
+
- How do sibling features or neighboring apparatus handle the same kind of problem? Read 2-3 comparable implementations if they exist. **Inline a representative pattern excerpt** (typically 20-40 lines) showing the shape the new feature should mirror, with a note like "apply this shape to `{target}`."
|
|
95
|
+
- If the feature is novel with no clear siblings, note that — the absence of precedent is itself useful information for design decisions.
|
|
88
96
|
- What conventions does the codebase use for this kind of thing? (File layout, naming, error handling, config shape)
|
|
89
97
|
|
|
90
98
|
**Existing context:**
|
|
@@ -95,7 +103,7 @@ Your inventory feeds a downstream spec writer who produces **intent-based briefs
|
|
|
95
103
|
- Note any places where documentation describes different behavior than the code implements. Capture them in the inventory as data points; do NOT lift to observations unless they meet the *Observations* bar (real bug, real cross-cutting design Q, real consolidation, real hidden-migration evidence).
|
|
96
104
|
- **Tag drift on files the commission will already be touching as `concurrent doc updates needed`** — the implementing artificer will fix this inline as part of the work. Do not separately lift it as an observation.
|
|
97
105
|
|
|
98
|
-
This is a working document — rough, thorough, and unpolished. Do not spend effort on formatting or prose quality. Its value is in completeness of *coverage* (every relevant system identified, every cross-cutting concern surfaced) and analytical orientation (downstream agents can form decisions from your map)
|
|
106
|
+
This is a working document — rough, thorough, and unpolished. Do not spend effort on formatting or prose quality. Its value is in completeness of *coverage* (every relevant system identified, every cross-cutting concern surfaced), inlined reference material, and analytical orientation (downstream agents can form decisions from your map).
|
|
99
107
|
|
|
100
108
|
---
|
|
101
109
|
|
package/sage-writer.md
CHANGED
|
@@ -81,9 +81,17 @@ Produce the implementation brief. The audience is the anima that will build this
|
|
|
81
81
|
|
|
82
82
|
The brief is directive and intent-focused. The implementer sees what to build, why it matters, where the blast radius is, and how to verify the work is done — not how to write the code.
|
|
83
83
|
|
|
84
|
-
**Critical principle: describe intent, not implementation
|
|
84
|
+
**Critical principle: describe intent, not implementation — but DO inline reference material the implementer will use.**
|
|
85
85
|
|
|
86
|
-
|
|
86
|
+
Do not enumerate files for the implementer to change, do not write function bodies, do not provide type definitions or signatures *for new code you want them to write*, do not write pseudocode for the implementation. The implementer reads the codebase and makes those choices.
|
|
87
|
+
|
|
88
|
+
Do inline reference material — *existing* types, patterns, and doc sections the new code will call into, mirror, or edit. The dividing line:
|
|
89
|
+
|
|
90
|
+
- **Inline** a type signature so the implementer knows the API surface — do **not** write the function body.
|
|
91
|
+
- **Inline** a pattern excerpt so the implementer can mirror it — do **not** specify the file-by-file changes.
|
|
92
|
+
- **Inline** a §-section of a doc the change edits — do **not** prescribe the new wording for the section.
|
|
93
|
+
|
|
94
|
+
Reference excerpts inform the implementer's own audit; they do not replace it.
|
|
87
95
|
|
|
88
96
|
#### Brief format
|
|
89
97
|
|
|
@@ -149,16 +157,32 @@ Do not decompose into fine-grained per-requirement validation
|
|
|
149
157
|
checks — that level of granularity is implementation detail.
|
|
150
158
|
Aim for 3-7 signals that cover the whole brief.
|
|
151
159
|
|
|
152
|
-
##
|
|
160
|
+
## Reference Material
|
|
161
|
+
|
|
162
|
+
Inline reference material the implementer will use as input —
|
|
163
|
+
type signatures of APIs they'll call, pattern excerpts from
|
|
164
|
+
sibling features they'll mirror, §-section quotes from
|
|
165
|
+
documents the change will edit. Each excerpt should be the
|
|
166
|
+
smallest useful chunk (e.g., a 200-char type def, a 30-line
|
|
167
|
+
pattern excerpt).
|
|
168
|
+
|
|
169
|
+
For each excerpt, name the **source file** so the implementer
|
|
170
|
+
can re-derive if needed, and explain its **role** (API to call,
|
|
171
|
+
pattern to mirror, doc section to edit).
|
|
172
|
+
|
|
173
|
+
If a file is cited only as a pointer (referenced for blast
|
|
174
|
+
radius or context, but the implementer needs no further
|
|
175
|
+
content from it and is making no changes to it), annotate
|
|
176
|
+
with `Do not Read.`
|
|
153
177
|
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
178
|
+
If the brief directs the implementer to edit a specific
|
|
179
|
+
section of a document — e.g., "rewrite §11 of
|
|
180
|
+
`petitioner-registration.md`" — inline the contents of §11
|
|
181
|
+
here.
|
|
158
182
|
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
183
|
+
Inlined material is **reference, not prescription** — it
|
|
184
|
+
describes what already exists, never what the implementer
|
|
185
|
+
should write.
|
|
162
186
|
|
|
163
187
|
## What NOT To Do
|
|
164
188
|
|
|
@@ -183,7 +207,7 @@ The task manifest is appended to the brief, separated by a blank line. Use this
|
|
|
183
207
|
<task id="t1">
|
|
184
208
|
<name>Short descriptive name</name>
|
|
185
209
|
<files>predicted file footprint — packages, modules, or paths this task likely touches</files>
|
|
186
|
-
<action>Intent-level instructions — what to do, not how.
|
|
210
|
+
<action>Intent-level instructions — what to do, not how. No code blocks or new type definitions; reference material (existing types, patterns, doc excerpts) lives in the brief's Reference Material section, not in task actions.</action>
|
|
187
211
|
<verify>Executable verification command the implementer can run (e.g., pnpm -w typecheck, pnpm -w test, grep -r "oldName" packages/)</verify>
|
|
188
212
|
<done>Observable outcome — what is true when this task is complete</done>
|
|
189
213
|
</task>
|
|
@@ -201,7 +225,7 @@ The task manifest is appended to the brief, separated by a blank line. Use this
|
|
|
201
225
|
#### Manifest rules
|
|
202
226
|
|
|
203
227
|
- **`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.
|
|
204
|
-
- **`action`
|
|
228
|
+
- **`action` is pure intent.** No code blocks, no new type definitions, no file-by-file instructions — name the intent and constraints. Reference material (existing types, patterns, doc excerpts) lives in the brief's Reference Material section, not in task actions; task actions point to the brief's references rather than duplicating them.
|
|
205
229
|
- **`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.
|
|
206
230
|
- **`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."
|
|
207
231
|
- **No `type` attribute on tasks.** Tasks are just tasks.
|
|
@@ -211,8 +235,8 @@ The task manifest is appended to the brief, separated by a blank line. Use this
|
|
|
211
235
|
|
|
212
236
|
#### Brief style rules
|
|
213
237
|
|
|
214
|
-
- **
|
|
215
|
-
- **No exhaustive file lists.** Name the systems and concerns, not every file. The one exception: the
|
|
238
|
+
- **Inline reference, never prescription.** Inline existing types, patterns, and doc sections the implementer will use as input. Do not write function bodies, new type definitions, or pseudocode for the implementer to copy.
|
|
239
|
+
- **No exhaustive file lists.** Name the systems and concerns, not every file. The one exception: the Reference Material section names specific files as the source of inlined excerpts.
|
|
216
240
|
- **Name concerns, not solutions.** "Every consumer of X must be updated" is better than "update file A, B, C, D."
|
|
217
241
|
- **Acceptance signals are outcomes.** "The build passes and no residual references to the old name exist" — not "V1: check file A has the new name, V2: check file B has the new name."
|
|
218
242
|
- Don't hedge ("might," "could," "perhaps") — commit to choices.
|
|
@@ -257,7 +281,7 @@ Validate the brief's completeness by cross-referencing against the inventory and
|
|
|
257
281
|
- Every included scope item is covered by at least one task in the manifest.
|
|
258
282
|
- Task ordering respects dependencies — no task references artifacts created by a later task.
|
|
259
283
|
- Every task has an executable `verify` command and an outcome-level `done` criterion.
|
|
260
|
-
- Task `action` content
|
|
284
|
+
- Task `action` content is pure intent — no code blocks, no new type definitions, no inline reference excerpts (those live in the brief's Reference Material section).
|
|
261
285
|
- 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.
|
|
262
286
|
|
|
263
287
|
**Implementer perspective:**
|