@hobin/developer 0.1.7 → 0.1.9

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.
Files changed (66) hide show
  1. package/README.md +212 -355
  2. package/REFERENCE_ROUTING.md +243 -0
  3. package/extensions/developer.ts +601 -23
  4. package/extensions/machine.ts +45 -0
  5. package/extensions/references/behavior-preserving-structural-change.md +87 -8
  6. package/extensions/skills.ts +330 -52
  7. package/extensions/state.ts +227 -2
  8. package/extensions/tool-policy.ts +87 -0
  9. package/package.json +9 -3
  10. package/skills/abstraction-review/SKILL.md +37 -23
  11. package/skills/abstraction-review/reference-policy.json +66 -0
  12. package/skills/abstraction-review/references/field-card.md +113 -168
  13. package/skills/abstraction-review/references/repair-table.md +66 -80
  14. package/skills/abstraction-review/references/worked-examples.md +79 -256
  15. package/skills/model/SKILL.md +31 -13
  16. package/skills/model/reference-policy.json +96 -0
  17. package/skills/model/references/contract-and-replacement-models.md +112 -0
  18. package/skills/model/references/logic-query-semantics.md +89 -0
  19. package/skills/model/references/planning-models.md +75 -0
  20. package/skills/model/references/problem-modeling.md +143 -276
  21. package/skills/model/references/proof-obligations.md +71 -0
  22. package/skills/model/references/relational-constraint-models.md +110 -0
  23. package/skills/model/references/solver-result-boundaries.md +83 -0
  24. package/skills/model/references/temporal-behavior-models.md +106 -0
  25. package/skills/naming-judgment/SKILL.md +17 -4
  26. package/skills/naming-judgment/reference-policy.json +29 -0
  27. package/skills/naming-judgment/references/domain-naming.md +29 -10
  28. package/skills/schedule/SKILL.md +16 -6
  29. package/skills/schedule/reference-policy.json +29 -0
  30. package/skills/schedule/references/structural-change-timing.md +81 -18
  31. package/skills/signal/SKILL.md +17 -6
  32. package/skills/signal/reference-policy.json +29 -0
  33. package/skills/signal/references/structural-movement.md +87 -14
  34. package/skills/sketch/SKILL.md +38 -42
  35. package/skills/sketch/reference-policy.json +212 -0
  36. package/skills/sketch/references/accumulator-invariants.md +125 -0
  37. package/skills/sketch/references/closure-and-conventional-interfaces.md +87 -0
  38. package/skills/sketch/references/composition-by-wishes.md +69 -0
  39. package/skills/sketch/references/data-driven-design.md +99 -22
  40. package/skills/sketch/references/data-shape-template-catalog.md +58 -19
  41. package/skills/sketch/references/design-levels-and-boundaries.md +133 -0
  42. package/skills/sketch/references/earned-abstraction.md +75 -0
  43. package/skills/sketch/references/generative-recursion.md +122 -0
  44. package/skills/sketch/references/generic-dispatch-systems.md +75 -0
  45. package/skills/sketch/references/language-semantics.md +82 -0
  46. package/skills/sketch/references/meaning-preserving-conversions.md +69 -0
  47. package/skills/sketch/references/process-shape-and-resources.md +157 -0
  48. package/skills/sketch/references/representation-barriers.md +73 -0
  49. package/skills/sketch/references/responsibility-and-collaboration.md +108 -0
  50. package/skills/sketch/references/runtime-and-compilation.md +84 -0
  51. package/skills/sketch/references/selection-and-creation.md +76 -0
  52. package/skills/sketch/references/state-history-and-order.md +126 -0
  53. package/skills/sketch/references/type-transitions.md +54 -0
  54. package/skills/sketch/references/variation-roles.md +59 -0
  55. package/skills/verify/SKILL.md +17 -6
  56. package/skills/verify/reference-policy.json +30 -0
  57. package/skills/verify/references/verifier-selection-and-pass-but-wrong.md +152 -192
  58. package/SOURCES.md +0 -104
  59. package/skills/abstraction-review/references/recipe-cards.md +0 -322
  60. package/skills/model/references/worked-models-and-specialized-techniques.md +0 -218
  61. package/skills/sketch/references/abstraction-barriers-and-closure.md +0 -160
  62. package/skills/sketch/references/abstraction-composition-and-state.md +0 -184
  63. package/skills/sketch/references/composition-generative-recursion-and-accumulators.md +0 -196
  64. package/skills/sketch/references/generic-operations-and-languages.md +0 -134
  65. package/skills/sketch/references/processes-state-and-time.md +0 -171
  66. package/skills/sketch/references/responsibility-and-variation.md +0 -245
@@ -1,227 +1,187 @@
1
1
  # Verifier Selection And Pass-But-Wrong Risk
2
2
 
3
- Use this reference when a completion claim depends on several kinds of evidence,
4
- a passing check may not exercise the claim, or structural correctness matters in
5
- addition to visible behavior.
3
+ Use this reference when a completion claim needs more than one evidence kind, a
4
+ green check may be irrelevant, or visible behavior can pass while an important
5
+ observer or structural guarantee degrades.
6
6
 
7
- ## Contents
7
+ ## Judgment Spine
8
8
 
9
- - Claim Before Check
10
- - Evidence Map
11
- - Verifier Ladder
12
- - Execution Versus Relevance
13
- - Pass-But-Wrong Search
14
- - Test Design And Cost
15
- - Structural Degradation
16
- - Feedback Classification
17
- - Residual Risk And Stop Checks
18
- - Complete Evidence Example
9
+ ```text
10
+ claim
11
+ -> declared observer and boundary
12
+ -> cheapest check that could falsify it
13
+ -> actual execution and provenance
14
+ -> plausible wrong implementation
15
+ -> distinguishing evidence
16
+ -> strongest supported claim + residual
17
+ ```
19
18
 
20
- ## Claim Before Check
19
+ A command result is an observation. Verification decides what claim that
20
+ observation supports.
21
21
 
22
- State the claim before selecting a verifier. "Tests pass" is an observation;
23
- "the conversion rejects every impossible schedule variant" is a claim.
22
+ ## Split The Claim
24
23
 
25
- Split broad completion statements into independently checkable claims:
24
+ Separate independently falsifiable claims:
26
25
 
27
- - product behavior;
26
+ - user or caller behavior;
28
27
  - forbidden and boundary cases;
28
+ - data multiplicity and preservation;
29
29
  - type or API contract;
30
- - transition and history behavior;
31
- - compatibility with the requested source or version;
32
- - representation or abstraction boundary;
33
- - operational property such as performance, ordering, or idempotency.
30
+ - state transition and history;
31
+ - representation or ownership boundary;
32
+ - source/version compatibility;
33
+ - operational properties such as order, effects, time, space, and idempotency.
34
34
 
35
- If a claim cannot be stated, return to specification or modeling rather than
36
- choosing a convenient command.
35
+ If the intended claim cannot be stated, return to `specify` or `model`. Do not
36
+ choose a convenient command first.
37
37
 
38
38
  ## Evidence Map
39
39
 
40
- For each claim record:
41
-
42
40
  ```text
43
- Claim: the narrow statement under review
44
- Verifier: command, inspection, fixture, or human acceptance
45
- Observation: what actually happened
46
- Relevance: why the observation bears on the claim
47
- Counterexample coverage: meaningful wrong shapes exercised or omitted
48
- Residual: uncertainty that remains
41
+ Claim:
42
+ Observer and admitted boundary:
43
+ Verifier:
44
+ Observation:
45
+ Why it is relevant:
46
+ Counterexample coverage:
47
+ Source/version exercised:
48
+ Residual:
49
49
  ```
50
50
 
51
- Evidence may be direct, supporting, weak, contradicted, unavailable, or
52
- human-owned. Do not merge unavailable evidence with passing evidence.
53
-
54
- ## Verifier Ladder
55
-
56
- Prefer the cheapest verifier that can actually falsify the claim:
57
-
58
- | Verifier | Best fit |
59
- | --- | --- |
60
- | static inspection or focused diff | locality, wiring, ownership, stale code, representation boundary |
61
- | typecheck, lint, build, manifest check | syntax, imports, compile-time contracts, packaging |
62
- | focused example test | one concrete behavior or regression |
63
- | table or parameterized test | finite meaningful cases and boundaries |
64
- | property or metamorphic check | many examples share a stable rule |
65
- | integration or UI check | composition, rendering, persistence, external boundaries |
66
- | state-transition or concurrency fixture | history, ordering, retry, stale events, idempotency |
67
- | performance or resource measurement | runtime shape is part of the claim |
68
- | model, solver, or exhaustive check | small critical rule space justifies exhaustive reasoning |
69
- | human acceptance | the remaining question is policy, meaning, or visual judgment |
70
-
71
- Use a stronger verifier when a weaker one can pass under a plausible wrong
72
- implementation. Use a weaker verifier when it is the only practical evidence,
73
- but narrow the claim and record the residual.
74
-
75
- ## Execution Versus Relevance
76
-
77
- A verifier execution proves only that the verifier ran and produced an
78
- observation. Check relevance separately:
79
-
80
- - Did the fixture reach the changed branch?
81
- - Did assertions inspect the product meaning or only absence of an exception?
82
- - Did the build use the source and version requested by the user?
83
- - Did a UI snapshot expose interaction and state changes or only initial pixels?
84
- - Did a broad suite include the new boundary case?
85
- - Did the manual inspection examine the actual generated artifact?
86
-
87
- A green but irrelevant verifier creates a `verifier-gap`; it does not support
88
- the broader claim.
89
-
90
- ## Pass-But-Wrong Search
91
-
92
- For every consequential claim, imagine at least one implementation that passes
93
- current checks while violating the intended meaning. Look for:
94
-
95
- - missing branches whose fixtures never occur;
96
- - fallback/default behavior that silently selects product policy;
97
- - assertions that accept both the intended and an unintended value;
98
- - mocks that bypass the real boundary;
99
- - tests coupled to the implementation rather than the contract;
100
- - source/version mismatch;
101
- - current-state checks that miss invalid transitions;
102
- - correct result with wrong ordering, mutation, sharing, or complexity;
103
- - public API compatibility tested without real consumers.
104
-
105
- When a plausible shape remains cheap to test, add the smallest distinguishing
106
- fixture. Otherwise record it as residual risk instead of broadening the claim.
107
-
108
- ## Test Design And Cost
51
+ Classify evidence as direct, supporting, weak, contradicted, unavailable, or
52
+ human-owned. Never merge unavailable evidence into a passing row.
109
53
 
110
- Tests are design evidence only when their boundary and maintenance cost remain
111
- useful. Prefer tests that expose public responsibility and product meaning over
112
- tests that echo private method structure.
54
+ ## Choose By Falsification Power
113
55
 
114
- Choose the unit by the claim:
115
-
116
- - focused examples for stable responsibility and boundary cases;
117
- - role or contract tests when several implementations must substitute;
118
- - integration tests for collaborations, creation, persistence, and wiring;
119
- - properties when many examples share a generatable rule;
120
- - stateful fixtures when history, retry, order, or identity matters.
121
-
122
- Do not require one test layer per class. Loose coupling may make a smaller unit
123
- economical to test, while simple forwarding or framework glue may be better
124
- covered by a larger behavior check. Fakes should remove irrelevant context while
125
- preserving the collaborator role; mocks that restate call internals create an
126
- echo chamber.
127
-
128
- Delete or reorganize tests only when the remaining evidence still supports the
129
- same claims. Redundancy is sometimes cheap insurance and sometimes obsolete
130
- context that prevents a design from moving. State which claim each retained test
131
- protects.
132
-
133
- ## Structural Degradation
56
+ | Claim shape | Cheapest relevant verifier | Typical gap |
57
+ | --- | --- | --- |
58
+ | wiring, ownership, stale code, representation leak | focused inspection or diff | runtime external behavior |
59
+ | syntax, imports, compile-time API, package shape | typecheck, lint, build, packed artifact | dynamic input and real consumer |
60
+ | one concrete behavior | focused example | unrepresented variants |
61
+ | finite partitions and boundaries | table/parameterized check | invalid partition or omitted domain |
62
+ | generatable stable rule | property/metamorphic check | generator excludes the wrong case |
63
+ | collaboration, persistence, UI, adapter | integration or interaction check | environment variance |
64
+ | retry, order, stale, concurrency | transition/trace fixture | production scheduling and scale |
65
+ | time, space, allocation, distribution | measurement with stated model | different size/case/cost model |
66
+ | bounded exhaustive relation | model/solver/proof evidence | assumptions, scope, encoding, toolchain |
67
+ | product or visual policy | human acceptance | mechanical correctness only |
68
+
69
+ Use a stronger verifier when a weaker one admits a plausible wrong shape. Use a
70
+ weaker verifier when it is the only economical evidence, but narrow the claim.
71
+
72
+ ## Execution Is Not Relevance
73
+
74
+ Ask:
75
+
76
+ - Did the fixture reach the changed branch and meaningful case?
77
+ - Did assertions observe product meaning or only absence of an exception?
78
+ - Did the command use the requested source and version?
79
+ - Did a UI check exercise interaction and state change or only initial pixels?
80
+ - Did a migration check pass through the real persistence adapter?
81
+ - Did a structural claim receive structural evidence rather than only equal
82
+ returned values?
83
+
84
+ A green irrelevant verifier is a `verifier-gap`.
85
+
86
+ ## Counterexample Families
87
+
88
+ Use the claim's observer to select a wrong shape. The table integrates the source
89
+ calibrations by failure mechanism rather than by book.
90
+
91
+ | Claim | Green proxy that can mislead | Plausible wrong implementation | Distinguishing check |
92
+ | --- | --- | --- | --- |
93
+ | transformation preserves domain values | expected output looks ordered | output drops duplicates or invents members | membership, no-additions, and multiplicity properties |
94
+ | optional states preserve meaning | happy configured case passes | missing, null, empty, and default collapse | same absence shape with different discriminator/meaning |
95
+ | property holds generally | sampled generated cases pass | generator omits one fixed boundary | inspect generator domain and add the distinguishing example |
96
+ | implication/test is strong | assertion excludes every bad case | assertion also rejects every correct implementation or passes vacuously | witness a valid instance and one violating instance |
97
+ | proof/model result establishes behavior | tool reports success | specification, arithmetic, scope, or assumptions omit product meaning | audit obligations, bounds, satisfiable witness, and observers |
98
+ | relational/storage rule matches model | projected rows look right | endpoint, `NULL`, bag duplicates, or mutation path differs | runtime-specific endpoint/multiplicity/event checks |
99
+ | numeric result is accurate | value is near a known answer | residual, location, bracket, or downstream error is wrong | name tolerance meaning and test each claimed relation |
100
+ | arithmetic refactor preserves behavior | ordinary magnitudes pass | reassociation changes inexact result or effect order | adversarial magnitudes, reverse order, effects, and scale |
101
+ | benchmark supports growth claim | sampled run is faster | input distribution or constant dominates; adversarial shape loses | state size/case/cost model and test relevant range |
102
+ | database schema behavior is preserved | row content matches | labels or function-valued predicates changed | inspect schema and execute predicates/integrity checks |
103
+ | temporal implementation is correct | each enum state is reachable | stale or duplicate event commits twice | ordered trace with stale, retry, duplicate, and concurrency |
104
+ | abstraction is safe | public tests pass | callers still depend on fields, load order, or hidden default | leak search, fake variant, and real caller rewrite |
105
+ | package/source compatibility holds | workspace tests pass | packed artifact or installed version lacks changed files | inspect tarball/fresh install and bind provenance |
106
+
107
+ A verifier for one row does not support another. In particular, location,
108
+ residual, representation, and downstream tolerances are not interchangeable.
109
+
110
+ ## Formal And Search Result Boundaries
111
+
112
+ Keep sampled property evidence distinct from total specification and proof. Keep
113
+ bounded model results relative to scope/configuration and require a satisfiable
114
+ witness. Preserve exposed statuses:
134
115
 
135
- Behavior may pass while the change weakens the code's ability to preserve the
136
- same guarantee. Inspect for:
116
+ ```text
117
+ satisfiable | unsatisfiable | unknown | timeout | error
118
+ unbounded | feasible | proven-optimal
119
+ ```
137
120
 
138
- - duplicated invariant or absence/default policy;
139
- - representation details leaking through a caller contract;
140
- - generic abstraction without stable examples or a nameable purpose;
141
- - hidden state, history, ordering, or ownership;
142
- - vocabulary drifting away from the accepted model;
143
- - a local fix that makes the next accepted requirement harder or unsafe;
144
- - tests passing only because they mirror the new implementation.
121
+ For logic/search work, distinguish no answer after complete exhaustion from
122
+ bounded unknown, timeout, error, or divergence. A later answer may exist behind
123
+ an infinite earlier branch.
145
124
 
146
- Structural degradation is evidence for structural observation or abstraction
147
- review. It does not automatically require refactoring now.
125
+ ## Test Design As Structural Evidence
148
126
 
149
- ## Feedback Classification
127
+ Choose test units by public responsibility and failure-localization value, not
128
+ one file per class. Focused role tests suit stable contracts; integration evidence
129
+ suits creation, collaboration, persistence, and wiring. A fake should preserve a
130
+ collaborator role while removing irrelevant context. A mock that repeats private
131
+ calls creates an echo chamber.
150
132
 
151
- Use a small, stable taxonomy:
152
-
153
- - `pass`: the evidence supports the narrow claim;
154
- - `implementation-fail`: relevant evidence contradicts the accepted claim;
155
- - `model-or-spec-fail`: evidence shows the accepted meaning or case model is
156
- wrong or incomplete;
157
- - `verifier-gap`: the check is missing or irrelevant to the claim;
158
- - `blocked-environment`: the required source or environment was not exercised;
159
- - `pass-but-wrong-risk`: current evidence passes while a plausible wrong shape
160
- remains;
161
- - `structural-degradation`: behavior passes but structure weakens a relevant
162
- boundary or guarantee.
163
-
164
- Classification describes the observation. The caller decides whether to
165
- repair, remodel, add evidence, ask a human, accept residual risk, or continue.
133
+ Redundancy can be independent domain evidence or obsolete context. Delete it only
134
+ when the remaining tests still support the same claim. Hard-to-write tests are a
135
+ structural signal, not automatic proof that production must be generalized.
166
136
 
167
- ## Residual Risk And Stop Checks
137
+ ## Feedback And Stop
168
138
 
169
- Verification is complete enough when:
139
+ Use:
170
140
 
171
- - every stated claim is supported, narrowed, or explicitly unverified;
172
- - each important forbidden or boundary case has evidence or a residual;
173
- - actual source and version match the requested target;
174
- - plausible pass-but-wrong shapes were attempted or recorded;
175
- - structural claims have more than behavioral evidence when needed;
176
- - human-owned acceptance is distinguished from mechanical checks;
177
- - another verifier would cost more than the information it is expected to add.
141
+ - `pass`;
142
+ - `implementation-fail`;
143
+ - `model-or-spec-fail`;
144
+ - `verifier-gap`;
145
+ - `blocked-environment`;
146
+ - `pass-but-wrong-risk`;
147
+ - `structural-degradation`.
178
148
 
179
- Do not claim total correctness from a finite evidence set. State the strongest
180
- claim justified now.
149
+ Verification is complete enough when every claim is supported, narrowed, or
150
+ explicitly unverified; important wrong shapes have evidence or residuals; source
151
+ and version match; and another check would cost more than its expected
152
+ information.
181
153
 
182
- ## Complete Evidence Example
154
+ ## Complete Artifact
183
155
 
184
156
  ```text
185
- Claim: recurring schedules without an end date remain valid.
186
- Verifier: focused table test with one-time, recurring-open, recurring-bounded,
187
- and invalid-interval rows.
188
- Observation: all rows produce the expected domain result.
189
- Relevance: each semantic variant crosses the new conversion boundary.
190
- Pass-but-wrong search: a mapper could still ignore timezone normalization.
191
- Residual: timezone behavior remains unverified and is not included in the
192
- supported claim.
157
+ Claim/evidence matrix:
158
+ Requested-versus-exercised provenance:
159
+ Counterexample family and attempted wrong implementation:
160
+ Distinguishing checks and observations:
161
+ Structural degradation, if any:
162
+ Strongest supported claim:
163
+ Unverified claims and residual risk:
193
164
  ```
194
165
 
195
- Now attempt a wrong implementation that always emits `recurring-open` whenever
196
- `endDate` is absent. It passes the open-recurring row but also misclassifies a
197
- one-time schedule whose UI omitted an optional display field. Add a one-time row
198
- with the same absence shape but a different recurrence discriminator. This
199
- fixture fails the plausible wrong rule while remaining at the public conversion
200
- boundary.
201
-
202
- Map the broader completion claim:
203
-
204
- | Claim | Verifier | What it can still miss |
205
- | --- | --- | --- |
206
- | semantic variants convert correctly | focused table test | persisted legacy shapes not in the table |
207
- | public type accepts intended callers | typecheck plus real caller build | runtime external input |
208
- | legacy saved schedules remain readable | migration fixture through persistence adapter | unknown production corruption |
209
- | UI shows the converted meaning | interaction test or manual run | timezone/environment variance |
210
- | package contains the changed source | packed-tarball inspection and fresh install | registry propagation delay |
211
-
212
- If only the first row is executed, report only the first claim. The correct
213
- result is a narrower supported statement, not an unqualified “done.”
214
-
215
166
  ## Source Trace
216
167
 
217
- - Hillel Wayne, *Logic for Programmers*, version 0.14.0, May 4, 2026:
218
- strong and weak tests, partial specifications, structural properties,
219
- property-based testing, contracts, and proof limitations.
220
- - Sandi Metz, Katrina Owen, and TJ Stankus, *99 Bottles of OOP*, Second
221
- Edition, version 2.2.2, 2024: chapters 2 and 9 on cost-effective tests,
222
- avoiding implementation echo, choosing units, unit versus integration tests,
223
- context independence, fakes, role verification, and obsolete-test removal.
224
- - Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, and Shriram
225
- Krishnamurthi, *How to Design Programs, Second Edition*, MIT Press, 2018:
226
- representative examples and tests as successive constraints in a design
227
- recipe.
168
+ - Hillel Wayne, *Logic for Programmers*, v0.14.0:
169
+ Chapters 3-6 and 9-11, pp. 23-155, for logical/runtime preservation, partial
170
+ specifications, generated properties, proof limits, bounded models, and solver
171
+ result states. Recorded beta defects are excluded.
172
+ - Sandi Metz, Katrina Owen, and TJ Stankus, *99 Bottles of OOP*, Second Edition,
173
+ v2.2.2, Chapters 2 and 9, pp. 23-50 and 226-268, for cost-effective tests,
174
+ public responsibility, integration versus unit evidence, fakes, role checks,
175
+ and obsolete context.
176
+ - Matthias Felleisen et al., *How to Design Programs*, living build 9.2.0.3:
177
+ Prologue,
178
+ Chapter 18,
179
+ Chapter 23,
180
+ Chapter 25,
181
+ Chapter 27,
182
+ Chapter 28,
183
+ Chapter 29,
184
+ Intermezzo 4, and
185
+ Intermezzo 5
186
+ for progressive property strength, multiplicity, schema predicates, numeric
187
+ tolerances, order-sensitive arithmetic, and bounded performance evidence.
package/SOURCES.md DELETED
@@ -1,104 +0,0 @@
1
- # Source-to-Capability Trace
2
-
3
- Developer is organized around questions the agent must answer, not around books.
4
- This maintainer document records how source material is decomposed across leaf
5
- skills and the implementation path. It is not a Pi runtime resource or a required
6
- workflow.
7
-
8
- ## Ownership Rule
9
-
10
- A source idea belongs where its observable job is performed:
11
-
12
- - product meaning and change pressure go to `specify`;
13
- - cases, rules, contracts, and transitions go to `model`;
14
- - implementable boundaries and collaborations go to `sketch`;
15
- - visible structural movement goes to `signal`;
16
- - candidate stability goes to `abstraction-review`;
17
- - timing goes to `schedule`;
18
- - names go to `naming-judgment`;
19
- - claim-to-evidence judgment goes to `verify`;
20
- - already-justified mutation goes to the `implementation` route.
21
-
22
- No source implies a mandatory route order. Several leaves may use different
23
- parts of the same source because they answer different questions.
24
-
25
- ## Runtime Reference Quality
26
-
27
- `SKILL.md` owns discovery, the core question, output, completion, and conditional
28
- routing. A reference loaded through that route must be usable without reopening
29
- the original source or reconstructing unstated steps.
30
-
31
- Match detail to the reference's job:
32
-
33
- - a concept or design reference needs the core insight, input, derivation rule,
34
- completed example, counterexample or failure diagnosis, output, and boundary;
35
- - a recipe card needs a trigger, input artifact, construction rule, output
36
- artifact, observable stop, and repair direction;
37
- - a diagnostic table needs a symptom, evidence path, repair artifact, and
38
- re-check;
39
- - a worked-example file needs enough context to show why the decision follows,
40
- not only a polished final answer;
41
- - a mutation protocol needs an entry contract, safe intermediate states,
42
- evidence rhythm, reroute conditions, and a stable landing.
43
-
44
- Split a reference when independent questions would otherwise make it expensive
45
- to load, but keep the central insight and one complete example in the primary
46
- reference. Splitting by chapter title or merely to shorten a file is not a
47
- capability boundary.
48
-
49
- ## Capability Matrix
50
-
51
- | Source | Capability extracted | Primary owner | Supporting owner or execution path |
52
- | --- | --- | --- | --- |
53
- | *99 Bottles of OOP*, ch. 1-2 | simple concrete baseline, Shameless Green, cost-effective and intention-revealing tests | `verify` | `signal`, `schedule` |
54
- | *99 Bottles of OOP*, ch. 3-4 | real change pressure, point of attack, closest pair, smallest difference, horizontal movement | `signal` | `implementation` behavior-preserving protocol |
55
- | *99 Bottles of OOP*, ch. 4-5 | stable landings, responsibility-derived names, argument and data movement | `abstraction-review`, `naming-judgment` | `implementation` behavior-preserving protocol |
56
- | *99 Bottles of OOP*, ch. 5-8 | responsibility separation, messages, type transitions, polymorphism, dependency direction, object creation at the edge, factory tradeoffs | `sketch`, `abstraction-review` | `model`, `schedule` |
57
- | *99 Bottles of OOP*, ch. 9 | unit boundaries, context independence, role verification, obsolete-test removal | `verify` | `sketch` |
58
- | *How to Design Programs* | information analysis, data definitions, examples, templates, structural and generative recursion, accumulators, iterative refinement | `sketch` | `model`, `verify`, `signal`, `abstraction-review` |
59
- | *Structure and Interpretation of Computer Programs*, ch. 1-2 | procedural abstraction, process shape, higher-order composition, data abstraction, closure, conventional interfaces, multiple representations | `sketch`, `abstraction-review` | `model` |
60
- | *Structure and Interpretation of Computer Programs*, ch. 3 | state, identity, history, concurrency, streams, constraint propagation | `model`, `sketch` | `abstraction-review`, `verify` |
61
- | *Structure and Interpretation of Computer Programs*, ch. 4-5 | language/evaluator boundaries and explicit execution machinery | `sketch`, `abstraction-review` | imported only when a real DSL, interpreter, compiler, or runtime boundary exists |
62
- | *Logic for Programmers*, ch. 2-3 | predicates, sets, quantifiers, logical refactoring, runtime-semantic caveats | `model` | `verify` |
63
- | *Logic for Programmers*, ch. 4-6 | partial specifications, properties, contracts, replacement, proof limits | `model`, `verify` | `abstraction-review` |
64
- | *Logic for Programmers*, ch. 7-12 | relational constraints, decision tables, domain/time/system models, solvers, logic programming | `model` | `verify` |
65
- | *Elements of Clojure*: Names | narrow and consistent sense, honest effects and scope crossing | `naming-judgment` | `model` |
66
- | *Elements of Clojure*: Idioms | language-specific conventions and explicit operational semantics | project conventions or `implementation` | generalized only when the semantic lesson survives the language |
67
- | *Elements of Clojure*: Indirection | abstraction cost, module environment/model/interface/assumptions, principled versus adaptable systems | `sketch`, `abstraction-review` | `schedule` |
68
- | *Elements of Clojure*: Composition | units of computation and pull-transform-push process boundaries | `sketch` | `naming-judgment`, `verify` |
69
- | *Tidy First?* | separate behavior from structure, small tidyings, optionality, reversibility, first/after/later/never | `schedule` | `implementation` behavior-preserving protocol, `signal` |
70
-
71
- ## Intentionally Not Imported As Universal Rules
72
-
73
- Source coverage does not mean copying every example or language idiom into every
74
- task. The following remain contextual:
75
-
76
- - Ruby class and factory shapes from *99 Bottles* are evidence about
77
- responsibility and variation, not a destination for every design.
78
- - Scheme evaluators, register machines, and compiler details from SICP are used
79
- only for tasks that actually expose those runtime or language boundaries.
80
- - Clojure-specific arities, option maps, atoms, macros, and interop idioms stay
81
- subordinate to the target project's language and conventions.
82
- - Logic solvers, formal proof, TLA+, Prolog, and answer-set programming are
83
- selected only when the modeled uncertainty and risk justify their cost.
84
- - HtDP recipes are adapted to existing repositories; they do not require adding
85
- pedagogical comments, signatures, or templates to production code.
86
-
87
- These exclusions prevent a respected source from becoming a framework-shaped
88
- answer imposed on unrelated product work.
89
-
90
- ## Reassembly Check
91
-
92
- When adding or revising a source-derived reference, record:
93
-
94
- ```text
95
- Source location: book, edition/version, chapter or section
96
- Capability: the question or action the idea improves
97
- Owner: one leaf or the implementation path
98
- Boundary: what the owner must not absorb
99
- Observable effect: the artifact, decision, or safer execution behavior expected
100
- ```
101
-
102
- Create a new leaf only when a recurring question has a distinct input, output,
103
- completion condition, and boundary that no existing owner can express. A new
104
- source, technique, or vocabulary is not by itself evidence for a new leaf.