Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
449 commits
Select commit Hold shift + click to select a range
7791815
Push-back round 2: fix backwards spec citation (F1), bundle N1-N7
mzargham Sep 28, 2026
dfecaf4
next-passes.md: update item 11 with the [1..1]-also-fails finding fro…
mzargham Sep 28, 2026
153165e
Push-back round 3: apply explicit [0..*] as the actual fix (F3), fix F2
mzargham Sep 28, 2026
fe55748
Round 4 fix, applied directly by the orchestrator (not the builder): …
mzargham Sep 28, 2026
da84c6e
Fix stale round count in D-026 (three -> five, per round 5's own revi…
mzargham Sep 28, 2026
b939b98
Merge PASS4-004: Chapter 4 (Functional Decomposition) re-derivation
mzargham Sep 28, 2026
b240284
Log PASS4-004 (Chapter 4 re-derivation): rebase, the D-026 gap found/…
mzargham Sep 28, 2026
c7efeeb
Rebase ch05-cumulative.sysml onto ch04: usage-level allocate, abstrac…
mzargham Sep 28, 2026
7d52924
Rewrite Chapter 5 notebooks and framing for the re-derived model
mzargham Sep 28, 2026
998bdd1
Update ch5 construction stubs and flip the ch04->ch05 predecessor-con…
mzargham Sep 28, 2026
b312b81
Schedule the port-type conformance check from ch05 nb03 (DL-038)
mzargham Sep 28, 2026
fda8652
Update forward references to Chapter 5's real content (standing SOP)
mzargham Sep 28, 2026
ad8c2c9
Push-back fix (Finding 1, OQ-1): remove HeatingSystem's regression su…
mzargham Sep 28, 2026
d46c430
Push-back fix (OQ-1, Finding 9): widen render.py for InterfaceUsage, …
mzargham Sep 28, 2026
98a404b
Push-back fix (Findings 1-4, 9, 10, OQ-2/3/4): correct notebook claim…
mzargham Sep 28, 2026
99083a7
Push-back fix: regenerate figure, update construction stubs for the c…
mzargham Sep 28, 2026
79021b2
Push-back fix (Finding 5): strengthen port-type test coverage; sync p…
mzargham Sep 28, 2026
b9fb851
Push-back fix (Finding 8): record the reopening-pitfall gap (D-027, D…
mzargham Sep 28, 2026
03e4ef0
Push-back fix (B2): correct D-027/Draft 11's repro so it actually rep…
mzargham Sep 28, 2026
dae1f98
Push-back fix (B3): update stale forward references from 'flow' to 'i…
mzargham Sep 28, 2026
6e74076
Push-back fix (B4 + bundled minors): nb02 shows the allocation's real…
mzargham Sep 28, 2026
2846fa0
Round 3 polish, applied directly by the orchestrator: three small tex…
mzargham Sep 28, 2026
5b532e3
Merge PASS4-005: Chapter 5 (Architecture and Allocation) re-derivation
mzargham Sep 28, 2026
21aec10
Log PASS4-005 (Chapter 5 re-derivation): the structural redesign, the…
mzargham Sep 28, 2026
aea21bc
Rebase and re-derive ch06 model: complete level-2 recursive step for …
mzargham Sep 28, 2026
09de862
Re-derive Chapter 6 notebooks: level-2 function, carrier, realization…
mzargham Sep 28, 2026
5a84f5a
Register ch06 construction notebooks; update predecessor-containment …
mzargham Sep 28, 2026
d138197
Fix conclusion.md wording: candidates realize HeatGenerator via Resis…
mzargham Sep 28, 2026
8d885bb
Write docs/reproducibility.md for real (was an unwritten [TODO] stub)…
mzargham Sep 28, 2026
247f664
Push-back fix: non-circular AS-C06, honest AI-C06 scope, real evidenc…
mzargham Sep 28, 2026
6ea8480
Round 2 polish, applied directly by the orchestrator: four small find…
mzargham Sep 28, 2026
0157889
Round 3 fix, applied directly by the orchestrator: F1 was never actua…
mzargham Sep 28, 2026
357d44d
Round 4 fix, applied directly by the orchestrator: AS-C06's counterev…
mzargham Sep 28, 2026
e144fbd
Round 5 fix, applied directly by the orchestrator: four markdown fram…
mzargham Sep 28, 2026
3a9b1ff
Fix nb02 cell-19's broken grammar from round 5's edit (M1, round 6 re…
mzargham Sep 28, 2026
35d1d60
Merge PASS4-006: Chapter 6 (Recursive Decomposition) re-derivation
mzargham Sep 28, 2026
0e552b0
Log PASS4-006 (Chapter 6 re-derivation): the level-2 recursive step, …
mzargham Sep 28, 2026
2149d34
Rebase models/ch07-cumulative.sysml onto the current, merged ch06 model
mzargham Sep 28, 2026
09420c3
Re-derive Chapter 7: real DeliveredEnergy and a working Cycle state m…
mzargham Sep 28, 2026
0f31728
DEFERRED.md: note D-023's guard is now demonstrated directly in Chapt…
mzargham Sep 28, 2026
cc4c9aa
Round 1 fixes: close the DL-030 efficiency loophole; correct false hi…
mzargham Sep 28, 2026
d471d31
Round 2 fixes: move Cycle's exhibit to the abstract subject; five wor…
mzargham Sep 28, 2026
0b24d93
Round 3 fix, applied directly by the orchestrator: correct the perfor…
mzargham Sep 28, 2026
42c603b
Merge PASS4-007: Chapter 7 (Execution and Experiments) re-derivation
mzargham Sep 28, 2026
99e299d
Log PASS4-007 (Chapter 7 re-derivation): the DL-030 efficiency-loopho…
mzargham Sep 28, 2026
a2d3ef8
Re-derive Chapter 8: a real formal property, proved not evaluated
mzargham Sep 28, 2026
663bd19
Register Chapter 8 in check_construction.py's CONSTRUCTION_NOTEBOOKS
mzargham Sep 28, 2026
a556a9b
Close ch07->ch08 predecessor containment, following the established p…
mzargham Sep 28, 2026
7d4d0d8
Add test coverage for deliveredEnergyBoundedBySupply and its negative…
mzargham Sep 28, 2026
0bd1e02
Log D-029: modelcheck.py cannot parse a verify --solve verdict for as…
mzargham Sep 28, 2026
a74288e
Update docs/index.md's Chapter 8 curriculum row
mzargham Sep 28, 2026
40737bb
Rebase test_query.py and test_conformance.py assertions onto the real…
mzargham Sep 28, 2026
9032423
Track opensysml-query skill staleness in next-passes.md (item 17)
mzargham Sep 28, 2026
9279b92
Round 2 review fixes: the proved property is a hand-restated lemma, n…
mzargham Sep 28, 2026
dceebac
Fix nb02 tempfile nondeterminism: fixed scratch filenames, not NamedT…
mzargham Sep 28, 2026
c1bce13
Round 3 fix, applied directly by the orchestrator: portable (not mach…
mzargham Sep 28, 2026
e1a3de6
Merge PASS4-008: Chapter 8 (Constraint Checking) re-derivation
mzargham Sep 28, 2026
eb14970
Log PASS4-008 (Chapter 8 re-derivation): real model checking delivere…
mzargham Sep 28, 2026
86af8f2
Author Chapter 9 (Coverage and Sufficiency): requirement coverage, ev…
mzargham Sep 28, 2026
930f52c
Register Chapter 9 with check_construction.py, its own predecessor-co…
mzargham Sep 28, 2026
17783d7
Fix requirement_coverage(): polarity-blind coverage counting (round 2…
mzargham Sep 28, 2026
cb12425
Redesign nb01 around the requirement_coverage() fix; drop the vacuous…
mzargham Sep 28, 2026
5022313
Reconstruct AS-C06/AS-C08 verbatim; add a real sufficiency negative c…
mzargham Sep 28, 2026
4b4715b
Make the ch09 predecessor-containment tests check what they claim; fi…
mzargham Sep 28, 2026
8d895dd
Round 3 fix, applied directly by the orchestrator: correct the AS-C06…
mzargham Sep 28, 2026
32de302
Merge PASS4-009: Chapter 9 (Coverage and Sufficiency), authored from …
mzargham Sep 28, 2026
121197c
Log PASS4-009 (Chapter 9, authored from scratch): the real coverage-g…
mzargham Sep 28, 2026
55f1525
Resolve ch10 predecessor-containment precondition (next-passes item 21)
mzargham Sep 28, 2026
a59d17c
Author Chapter 10 (Traceability and Sign-off) from scratch
mzargham Sep 28, 2026
b2be261
Close next-passes item 21; update ch10 curriculum row
mzargham Sep 28, 2026
7bf423d
Round 1 review fixes (F1-F9, OQ1-OQ3)
mzargham Sep 28, 2026
14b04b8
Round 2 fix, applied directly by the orchestrator: three optional nit…
mzargham Sep 28, 2026
8ad8270
Merge PASS4-010: Chapter 10 (Traceability and Sign-off), the tutorial…
mzargham Sep 28, 2026
84f1b15
Log PASS4-010 (Chapter 10, the tutorial's final chapter, authored fro…
mzargham Sep 28, 2026
bcc4796
Fix opensysml-query's three stale recipes (DL-052, next-passes item 1…
mzargham Sep 28, 2026
c060c70
Close two next-passes.md items per Z's decisions in chat (DL-053): th…
mzargham Sep 28, 2026
2d02a43
Add diagram-survey design spec: re-run the tool trade study against r…
mzargham Sep 28, 2026
34238b7
Extend orchestrator-protocol with a plan-driven, non-chapter work pat…
mzargham Sep 28, 2026
58eaf43
Add Phase 0 diagram-study implementation plan (approved by Z, subagen…
mzargham Sep 28, 2026
f1f0b1a
Phase 0 diagram study: verify toolchain against original study's pinn…
mzargham Sep 28, 2026
c162c0b
Fix provisioning test's import to load provision_check.py by file path
mzargham Sep 28, 2026
f92b180
Point opensysml provisioning check at the render CLI binary, not the …
mzargham Sep 28, 2026
0645976
Integrate Task 1: Phase 0 toolchain provisioning check (reviewed, PASS)
mzargham Sep 28, 2026
1a8fe27
Phase 0 diagram study: reusable render/run harness generalized from r…
mzargham Sep 28, 2026
a0aa215
Integrate Task 2: render/run harness module (reviewed, PASS, argv fid…
mzargham Sep 29, 2026
a3f0553
Phase 0 diagram study: real fixture set (Ch5/6/7/8) plus one-element …
mzargham Sep 29, 2026
4bafb3f
Integrate Task 3: real Ch5/6/7/8 fixtures plus mutated siblings (revi…
mzargham Sep 29, 2026
04fc1f4
Phase 0 diagram study: render OpenSysML/toolkit/pilot against real Ch…
mzargham Sep 29, 2026
16bb6bb
Integrate Task 4: render OpenSysML/toolkit/pilot against real Ch5/6/7…
mzargham Sep 29, 2026
fd69fd5
Phase 0 diagram study: probe allocation/requirement-view support acro…
mzargham Sep 29, 2026
03fd05d
Integrate Task 5: allocation/requirement view-type probe (reviewed, P…
mzargham Sep 29, 2026
01044b2
Log DL-055: ACE ruling on Task 6's SysMLD finding — real indexer bug,…
mzargham Sep 29, 2026
d2ed0c5
Phase 0 diagram study Task 6: SysMLD intent files for Ch5/Ch7 real fi…
mzargham Sep 29, 2026
09a81da
Phase 0 diagram study Task 6: commit sysmld render/validate failure l…
mzargham Sep 29, 2026
299e6e8
Append addendum to DL-055: ch05's SysMLD failure has two independent …
mzargham Sep 29, 2026
a57ad1e
Phase 0 diagram study Task 6: correct sysmld-indexer-probe.json's ch0…
mzargham Sep 29, 2026
c4007f3
Integrate Task 6: SysMLD intent files for Ch5/Ch7 (reviewed, PASS aft…
mzargham Sep 29, 2026
a100871
Phase 0 diagram study Task 7: mutation-control test against real fixt…
mzargham Sep 29, 2026
d4f4d7e
Integrate Task 7: mutation-control test against real fixtures (review…
mzargham Sep 29, 2026
db92d1f
Phase 0 diagram study Task 8: compile real-fixture capability matrix …
mzargham Sep 29, 2026
f27e654
Phase 0 diagram study Task 8: push-back fixes to real-fixture deliver…
mzargham Sep 29, 2026
0b4ce65
Phase 0 diagram study Task 8: second push-back round, two wording fixes
mzargham Sep 29, 2026
13d470c
Log DL-056: Phase 0 (real-fixture diagram-tool trade-study rerun) com…
mzargham Sep 29, 2026
ad8bf4c
Integrate Task 8: compiled real-fixture capability matrix (reviewed, …
mzargham Sep 29, 2026
6ed75bf
Rename render_sysmld to render_interconnection and correct sysml-diag…
mzargham Sep 29, 2026
9afac84
Add diagram-generation strategy design spec: prove-then-use tool sele…
mzargham Sep 29, 2026
1f8c727
Add diagram-generation strategy implementation plan (containment_subg…
mzargham Sep 29, 2026
319fb44
Add containment_subgraph(): query-driven element selection by root, r…
mzargham Sep 29, 2026
5d611f6
Validate relations and depth in containment_subgraph(), raise ValueEr…
mzargham Sep 29, 2026
22a162f
Integrate Task 1: containment_subgraph() (reviewed, PASS; two validat…
mzargham Sep 29, 2026
cfa2b54
model_to_dot(): add elements and layout parameters, default behavior …
mzargham Sep 29, 2026
fa7c86c
Integrate Task 2: model_to_dot() elements/layout parameters (reviewed…
mzargham Sep 29, 2026
59b1075
build_interconnection_intent(): add depth parameter, reusing containm…
mzargham Sep 29, 2026
4995e22
build_interconnection_intent(): document flows/allocs depth>1 limitat…
mzargham Sep 29, 2026
ca12fb5
Integrate Task 3: build_interconnection_intent() depth parameter (rev…
mzargham Sep 29, 2026
ac59707
Merge pull request #22 from Open-MBEE/phase0/diagram-study-p0
mzargham Sep 29, 2026
e8563da
Merge origin/pass1/harness-alignment (PR #22: Phase 0 deliverable) in…
mzargham Sep 29, 2026
914126d
Merge pass1/harness-alignment (now includes Phase 0's deliverable and…
mzargham Sep 29, 2026
05f57cf
Seed decisions/diagram-tool-gaps.md with Phase 0's two rendering-tool…
mzargham Sep 29, 2026
ab42fc3
Log DL-058: ACE ruling — the tutorial's own qualified-name allocate e…
mzargham Sep 29, 2026
aee5f75
Rewrite G-D001 per DL-058 (fixtures ch05-ch08 violate KerML connector…
mzargham Sep 29, 2026
f267d5d
Merge diagram-strategy/impl (DL-058 logged) so this branch's decision…
mzargham Sep 29, 2026
7a370ef
Clarify intro paragraph: G-D001 does not fit the 'tool not adopted' f…
mzargham Sep 29, 2026
19519a8
Integrate Task 4: decisions/diagram-tool-gaps.md gap register (review…
mzargham Sep 29, 2026
93d2c71
Record DL-058's follow-up (ch05-ch08 allocate non-conformance, two to…
mzargham Sep 29, 2026
11e3f17
Merge diagram-generation-strategy plan (containment_subgraph query-sc…
mzargham Sep 29, 2026
bea9b17
Fix ch05 heatAllocation to conformant nested form (DL-058)
mzargham Sep 29, 2026
caf2b87
Merge Task 1: Ch5 heatAllocation nested inside Toaster (DL-058)
mzargham Sep 29, 2026
14ccb0d
Nest ch6 heatGenAllocation inside HeatingAssembly (DL-058 fix)
mzargham Sep 29, 2026
27598f8
Merge Task 2: Ch6 heatGenAllocation nested inside HeatingAssembly (DL…
mzargham Sep 29, 2026
c43266c
Propagate DL-058 allocate fix to ch07, ch08, ch10 and ch06's remainin…
mzargham Sep 29, 2026
4c6375f
Update next-passes.md item 23: DL-058 model fix is done, correct the …
mzargham Sep 29, 2026
c36c131
Merge Task 3: propagate DL-058 allocate fix to ch06/07/08/10, close a…
mzargham Sep 29, 2026
261f6e7
Add allocate-connector-end-accessibility gap rule (DL-058 guard)
mzargham Sep 29, 2026
61e071a
DEFERRED.md: add D-032 (allocate connector end accessibility, GUARDED)
mzargham Sep 29, 2026
f0860ad
next-passes.md: mark item 23 sub-items (a) and (b) done
mzargham Sep 29, 2026
8a94f39
decisions/log.md: record DL-059, completing DL-058's remediation
mzargham Sep 29, 2026
6d981aa
Fix test_query.py's INHERITED_ALLOCATION: nest allocation, closing Ta…
mzargham Sep 29, 2026
d1f2644
Harden allocate-connector-end-accessibility: fix specialization/typin…
mzargham Sep 29, 2026
cf05410
Fix QUALIFIED_ALLOC_AND_INTERFACE_SOURCE: promote doApply to package …
mzargham Sep 29, 2026
89ce542
Correct D-019/D-020 guard-status overclaim and record Task 5's algori…
mzargham Sep 29, 2026
7509d1d
Harden allocate-connector-end-accessibility again: fix unnamed-owner …
mzargham Sep 29, 2026
84b9972
decisions/log.md, DEFERRED.md: record DL-059 addendum 2, second harde…
mzargham Sep 29, 2026
735843b
Fix two allocate-guard bugs: middle-chain-segment Definition uncaught…
mzargham Sep 29, 2026
b6642b1
Add tests for middle-chain-segment Definition and LibraryPackage fixe…
mzargham Sep 29, 2026
ef24e40
Record DL-059 addendum 3: fourth review round's F-1/F-2 fixes and the…
mzargham Sep 29, 2026
d736e52
Fix review round numbering, an overclaim, and loosen test assertions …
mzargham Sep 29, 2026
5a9ed39
Merge Task 7: final hardening of the DL-058 guard rule, then stop
mzargham Sep 29, 2026
60df3fc
Merge DL-058 remediation: conformant allocate idiom across ch05-ch10,…
mzargham Sep 29, 2026
bfb242f
Fix bound-features pilot warning: bracket efficiency's unit reference
mzargham Sep 30, 2026
55018e8
Record and describe the unit-display side effect the efficiency fix s…
mzargham Sep 30, 2026
89cab91
Fix cell 17's leftover bare-literal binding, tighten D-033's wording
mzargham Sep 30, 2026
845a6fb
Merge efficiency-binding fix: clear the last pilot warning across ch0…
mzargham Sep 30, 2026
2c03e55
Record the efficiency-binding fix and the exercise-rigor decision (DL…
mzargham Sep 30, 2026
5d4e9a8
Record DL-062: scope the exercise-track re-derivation, decide ch09/10…
mzargham Sep 30, 2026
6cf4143
Fix ch02 exercise: brewTemp is new (not inherited from ch01), Kelvin-…
mzargham Sep 30, 2026
13c0117
Fix main ch02's stale exercise pointers, mirror ReviewRecord's claim/…
mzargham Sep 30, 2026
650de74
Record item 26: check main chapters' own exercise pointers, not just …
mzargham Sep 30, 2026
2a53da1
Merge ch02 exercise re-derivation: temperature typing, mirrored judgm…
mzargham Sep 30, 2026
b4215bc
Fix ch03 exercise: drop invented calc def HeatRate, negated satisfy o…
mzargham Sep 30, 2026
b9b4286
Add ch03 exercise's missing verification-def step, fix conclusion.md'…
mzargham Sep 30, 2026
ed0b1da
Normalize exercise.ipynb formatting via nbformat (NotebookEdit unicod…
mzargham Sep 30, 2026
b77fbab
Widen item 26: check .md pointers too, and whether a pointer reveals …
mzargham Sep 30, 2026
2d521b8
Fix F1 (closed-connection bug) and F2 (stale index.md pointer); add A…
mzargham Sep 30, 2026
936151a
Record ch03 review's systemic methodology lessons in item 26
mzargham Sep 30, 2026
42f1921
Fix F3: restore the framing-record pointer, align AS-C03-EX with AS-C…
mzargham Sep 30, 2026
06f3409
Merge ch03 exercise re-derivation: drop invented calc def, fix overcl…
mzargham Sep 30, 2026
7bad762
Fix ch04 exercise: rename colliding Brew action, replace invented mat…
mzargham Sep 30, 2026
0c703a3
Fix F1 (missing analyze step) and F2 (imprecise def-vs-usage wording)
mzargham Sep 30, 2026
906be55
Align engineering_conclusion with AI-C04's real value; record ch04's …
mzargham Sep 30, 2026
a1d4485
Merge ch04 exercise re-derivation: new mass-balance action, fix real …
mzargham Sep 30, 2026
995ba6f
Fix ch05 exercise: conformant nested allocate, port/interface not flo…
mzargham Sep 30, 2026
c3f528f
Record DL-063, D-034: allocate-between-definitions fix, filter reserv…
mzargham Sep 30, 2026
7e252cd
Broaden flaky-test note: the failing parametrized index varies, not f…
mzargham Sep 30, 2026
a9de23e
Correct D-034/DL-063: sysml-toolkit rejects filter too (one-of-three,…
mzargham Sep 30, 2026
2d4d52c
Fix F2: three pointers still described the allocation as definition-t…
mzargham Sep 30, 2026
8538a67
Merge ch05 exercise re-derivation: conformant allocate, real port/int…
mzargham Sep 30, 2026
2ec7ef3
Re-derive ch06 exercise: unit-typed throughput, honest judgment chain
mzargham Sep 30, 2026
d48bee5
Sweep ch06's own exercise pointers to match the re-derived exercise
mzargham Sep 30, 2026
31463e8
Record DL-064: /tmp diagram-study scratch path wiped, pilot jar rebuilt
mzargham Sep 30, 2026
0381267
Fix ch06 exercise: real level-2 function/carrier/allocation, blank sc…
mzargham Sep 30, 2026
e750335
Fix 02-second-level.ipynb's own exercise pointer: WaterMover subject,…
mzargham Sep 30, 2026
cf9d4c9
Record ch06 exercise fixes in next-passes.md: FilterBasket collision …
mzargham Sep 30, 2026
81f83f7
Fix AS-C06-EX's dangling model_ref and stale 'retype' wording (round-…
mzargham Sep 30, 2026
9f32121
Merge ch06 exercise re-derivation: real level-2 mechanism carrier, ho…
mzargham Sep 30, 2026
e41c074
Record DL-065: ch06 exercise re-derivation, fixed after independent FAIL
mzargham Sep 30, 2026
a4b39dd
Re-derive ch07 exercise: bounded transferEfficiency/deliveredMass, re…
mzargham Sep 30, 2026
f96918c
Record ch07 exercise re-derivation in next-passes.md item 16 as resolved
mzargham Sep 30, 2026
42722e0
Address round-2 review M1/M2/M4: mention MeasurementReferences import…
mzargham Sep 30, 2026
35e3c17
Merge ch07 exercise re-derivation: deliveredMass/BrewCycle mirror rea…
mzargham Sep 30, 2026
0d66943
Record DL-066: ch07 exercise re-derivation, deliveredMass/BrewCycle m…
mzargham Sep 30, 2026
69294ca
Re-derive ch08 exercise: coffee-domain deliveredMassBoundedBySupply l…
mzargham Sep 30, 2026
063c71f
Ignore exercises/*/companion-check-scratch/ too (ch08 exercise now us…
mzargham Sep 30, 2026
1ea7767
Fix ch08 exercise round-1 review findings (F1-F4)
mzargham Sep 30, 2026
3b5d561
Fix ch08 exercise round-2 review findings: rigorous D-030 probe, pros…
mzargham Sep 30, 2026
3307c25
Address round-3 review N1-N4: assert sibling presence, clarify vacuou…
mzargham Sep 30, 2026
3834c4f
Merge ch08 exercise re-derivation: Z3-proved conservation lemma on th…
mzargham Sep 30, 2026
aec2a57
Record DL-067: ch08 exercise re-derivation, three review rounds to a …
mzargham Sep 30, 2026
d7131cc
Rewrite ch09 exercise as a coverage/sufficiency/staleness pass over t…
mzargham Sep 30, 2026
febcb9b
Fix stale ch09 exercise pointers to describe the rewritten coffee-mak…
mzargham Sep 30, 2026
59a3ecb
Record D-035: sysml-toolkit warns (not errors) on a satisfy naming an…
mzargham Sep 30, 2026
b21b5b8
Fix ch09 exercise review round: real ch06_source split, sufficiency p…
mzargham Sep 30, 2026
57e7b17
Fix m4: pointer text in nb02/nb03/conclusion.md attributed the wrong …
mzargham Sep 30, 2026
37ca124
Fix round-2 review N1-N3: guard the ch06_source placeholder against b…
mzargham Sep 30, 2026
a8bdb74
Merge ch09 exercise ground-up rewrite: coverage, sufficiency, stalene…
mzargham Sep 30, 2026
8504081
Record DL-068: ch09 exercise ground-up rewrite, coverage/sufficiency/…
mzargham Sep 30, 2026
8033b6a
Record item 29: ch10's own 'unjustified widget' search is vacuous, mi…
mzargham Sep 30, 2026
236fb80
Ground-up rewrite of ch10 exercise: traceability graph, judgment ledg…
mzargham Sep 30, 2026
6a31b18
Restore trailing newline in ch10 chapter notebooks after pointer-cell…
mzargham Sep 30, 2026
efa953e
Fix-and-reverify round: strip trailers, narrow F2 overclaim, real F3 …
mzargham Sep 30, 2026
d8f5725
Fix round-2 review: narrow two remaining overclaiming cells to match …
mzargham Sep 30, 2026
f29fcf6
Merge ch10 exercise ground-up rewrite: traceability graph, judgment l…
mzargham Sep 30, 2026
a011f0e
Record DL-069: ch10 exercise rewrite, completing the full exercise-tr…
mzargham Sep 30, 2026
7fc2a41
Add requirement_ties/tied_to_any_requirement: a general search for an…
mzargham Sep 30, 2026
d588c20
Fix ch10's own widget-in-reverse check to use the new, broader requir…
mzargham Sep 30, 2026
4765d32
Update exercise ch10's own coffee-domain mirror to use the fixed, bro…
mzargham Sep 30, 2026
8e9daed
Record DL-070: ch10 widget-in-reverse check fixed, next-passes item 2…
mzargham Sep 30, 2026
2b41dda
Extend requirement_ties to cover the referent field and raise on unkn…
mzargham Sep 30, 2026
c85b81a
Fix ch10 main-chapter notebooks: strip leaked cell tag, correct overc…
mzargham Sep 30, 2026
08133df
Fix ch10 exercise notebook: strip leaked cell tag, correct overclaim
mzargham Sep 30, 2026
fe41e6c
Correct DL-070 and next-passes item 29 for the round-2 referent fix
mzargham Sep 30, 2026
01afcb5
Redesign requirement_ties as a field-agnostic scan (round 3 fix-and-r…
mzargham Sep 30, 2026
7a87958
Add round-3 tests reproducing every reviewer finding for requirement_…
mzargham Sep 30, 2026
7a189be
Fix ch10 notebooks to describe the field-agnostic tie search accurately
mzargham Sep 30, 2026
d9e86c1
Record DL-071: round-3 redesign of requirement_ties, and correct DL-0…
mzargham Sep 30, 2026
3ddefd9
Narrow requirement_ties to two explicit checks, deleting round-3's fi…
mzargham Sep 30, 2026
47cfb16
Rewrite ch10 main-chapter cells to describe the narrowed, two-check d…
mzargham Sep 30, 2026
d84b215
Rewrite exercise ch10's own mirror to match the narrowed, two-check d…
mzargham Sep 30, 2026
b57ac22
Correct DL-071 in place for the final, narrowed requirement_ties design
mzargham Sep 30, 2026
21b7d01
Record D-036: bare named top-level connector rejected by sysml-toolki…
mzargham Sep 30, 2026
fc5178e
Address round-5 review: fix overclaiming comment, exclude negated sat…
mzargham Sep 30, 2026
13ce471
Correct D-036's framing: connector is KerML-only, not a top-level-spe…
mzargham Sep 30, 2026
dbbda00
Merge fix for ch10's vacuous 'unjustified widget' tie-search
mzargham Sep 30, 2026
ae6f40e
Extend D-029: also confirmed against models/ch10-cumulative.sysml, no…
mzargham Sep 30, 2026
b6d48a4
Tie deliveredEnergyBoundedBySupply to a real requirement (ENERGY-TIE-08)
mzargham Sep 30, 2026
59276aa
Add Ch8 notebooks 04-05 for the energy conservation requirement tie
mzargham Sep 30, 2026
84df9b8
Update test_query.py's ch10-fixture tests for the now-real energy tie
mzargham Sep 30, 2026
c8a2a88
Record DL-072: the energy conservation tie, and two found-not-fixed gaps
mzargham Sep 30, 2026
ca5dbf7
Fix F1 (round-1 review): restore tied_to_any_requirement negative-pat…
mzargham Sep 30, 2026
5511fe8
Add case study: tying the Ch8 energy-conservation lemma to a requirement
mzargham Oct 1, 2026
ad97a00
Case study: confirm the assert-satisfy drop by direct test, not argum…
mzargham Oct 1, 2026
85b7778
Revert Approach A (ENERGY-TIE-08): superseded by Approach B
mzargham Oct 1, 2026
c28ae70
Case study: correct misattribution of the pilot's subject-type warning
mzargham Oct 1, 2026
4461deb
models/ch10-cumulative.sysml: tie deliveredEnergyBoundedBySupply to E…
mzargham Oct 1, 2026
57b2ae8
Ch10 notebooks: close the energy-conservation tie gap, drop Check A, …
mzargham Oct 1, 2026
4f963b4
Ch9: distinguish energyConservationReq's by-design covered=False from…
mzargham Oct 1, 2026
4b15c38
exercises/ch10: add Step 2 (close the gap Step 1 finds), AC-C10-EX, d…
mzargham Oct 1, 2026
faa89d0
decisions: record DL-072 (energy-tie reconciliation), close next-pass…
mzargham Oct 1, 2026
eba7090
round-1 review fixes: real tied_to_any_requirement coverage, honest s…
mzargham Oct 1, 2026
27c3f35
round-2 review fix: correct Approach A / Approach B attribution of th…
mzargham Oct 1, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
14 changes: 14 additions & 0 deletions .claude/agents/ace.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
---
name: ace
description: The ACE (assistant to the chief engineer): triage layer between the team and Z. Rules and logs where Z's recorded positions settle a question, otherwise escalates to Z with a concise brief in Z's idiom. Invoked by the orchestrator with a question, evidence and a recommended default.
model: claude-fable-5-1
effort: high
---

You are the ACE for the toaster repository. Read `CLAUDE.md`, `AGENTS.md` Part 1, `.claude/skills/ace-protocol/SKILL.md` and `.claude/skills/ace-protocol/z-principles.md` (Z's frameworks, principles and heuristics) and, as provenance only, `z-model.md` (statements Z has made), and the glossary entries a question touches (`uv run python -m glossary tutorial TERM`). Use the glossary CLI, model queries and direct reads; do not grep the whole repository or load large files.

Your question arrives from the orchestrator with the evidence and a recommended default. Triage it as `ace-protocol` describes. **Rule** only if the frameworks, principles and heuristics (or a binding rule in AGENTS.md Part 1) determine the answer and you can show the reasoning step by step; flag any extension of a principle to a new kind of case. State provenance separately from reasoning. A quotation that does not address the case is not evidence for it. Otherwise **escalate**: a brief of at most five lines of substance in Z's idiom (objective, design space, candidate, feasibility, utility, MoE and MoP, judgment) with your recommended default. If they underdetermine the answer, escalate and say which step failed. You never guess what Z would say, and only Z confirms a glossary definition, approves a departure from a canonical source, or reopens an SA rule.

Return, as your final message: the verdict (RULE or ESCALATE), the ruling or the brief, and the decision-log entry text in the format from `ace-protocol` (principles applied, reasoning, determined, extension, provenance). Do not edit repository files: the orchestrator numbers and commits the log entry, so decision numbers never collide.

Model: you run on Fable 5.1, pinned explicitly by whoever launches you. Only the ACE runs on this model.
30 changes: 30 additions & 0 deletions .claude/agents/builder.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
---
name: builder
description: Builds and changes code and tests inside a declared blast zone, on its own branch in a private worktree, and reports evidence. Spawned by the orchestrator with a work contract. Implements what the contract specifies; does not make design or judgment calls.
model: claude-sonnet-5
effort: high
---

You are a builder for the toaster repository. Your work contract arrives from the orchestrator: the task, context, non-goals, acceptance criteria as runnable checks, the blast zone, and premises to verify. This file is what is true of every build.

## Start here (cold session)

Read `CLAUDE.md`, then `AGENTS.md` Part 1, then the skills your contract names. Use the glossary for terms (`uv run python -m glossary tutorial TERM`), model queries and `toaster.query` for models, and direct reads of known files; do not grep the whole repository or load large files or logs.

## Rules

- **Verify, do not trust.** Paths, function names and behavior in the contract are claims to check against the repository at HEAD. A premise that does not hold is reported, not silently resolved.
- **Expect push-back.** The orchestrator may refuse to merge until noisy or out-of-scope changes are cleaned up or open questions are answered. Keep the diff to what the task needs (do not reformat or rename unrelated lines), and answer a `PUSH-BACK` note by making exactly the required, checkable changes.
- **Stay inside the blast zone.** Write only the paths the contract names. Out-of-scope findings go in the report as flags; do not fix them.
- **Implement, do not decide.** The contract specifies behavior. If it leaves a design or judgment question open, or you find that two reasonable readings diverge, stop and put the question in your report for the orchestrator; do not choose. A question that Z's frameworks would have to settle goes to the ACE through the orchestrator.
- **Test first where you can.** Write the failing test, make it pass, and run the acceptance checks exactly as the contract states them. Run the full test suite before you finish.
- **No new dependencies** and no changes to CI, `pyproject.toml`, `uv.lock` or glossary and skill content unless the contract says so.
- **Commits:** one logical change per commit, plain messages, no co-author trailers. You do not merge, push, tag or open pull requests: the orchestrator integrates.
- **Gaps:** if a tool cannot do something the spec allows, use the recorded workaround and note the gap; never work around silently (AGENTS.md 1.9).

## Report (your final message)

- Branch and commit(s), diff stat with an explicit blast-zone statement, and the model you ran on.
- The full output of every acceptance check and of the full test suite, pasted, not summarized.
- Everything flagged and not fixed, every premise that did not hold, and every open question for the orchestrator (question, the readings, your recommended default).
- Report outcomes faithfully: a red check, a skipped step or a partial result is reported as such.
31 changes: 31 additions & 0 deletions .claude/agents/layer-auditor.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
---
name: layer-auditor
description: Read-only auditor that classifies each element of a chapter's model by layer (functional, logical, physical, or emergent result) using the architecture-layers checklist, and reports findings and open questions. Spawned by the orchestrator with a work contract. Never fixes what it finds.
model: claude-opus-5-5
effort: high
---

You are a layer auditor for the toaster repository. Your work contract arrives from the orchestrator: the chapter or model to audit, non-goals, acceptance criteria, and the blast zone. This file is what is true of every audit.

## Start here (cold session)

Read `CLAUDE.md`, then `AGENTS.md` Part 1 (sections 1.5 and 1.6 especially), then `.claude/skills/architecture-layers/SKILL.md`. Use the glossary for every term you rely on: `uv run python -m glossary tutorial TERM`. Query the model with the recipes in `.claude/skills/opensysml-query/SKILL.md` or `toaster.query`, and read known files by range; do not grep the whole repository or load large files.

## Method

For each element in the model you are assigned (part defs, action defs, items, ports, attributes, constraints, requirements, allocations, specializations, metadata), ask in order and stop at the first yes: (1) would a pop-up toaster and tongs with a blowtorch both satisfy it (functional); (2) does it commit to a mechanism, interface or policy but not a specific part or value (logical); (3) does it name a specific part or a value only a chosen part has (physical); (4) is it a result expected to follow from the design (emergent result: derived, never a choice). Then run the per-layer and cross-layer audit checklist.

You classify; you do not decide contested calls. Where the layer depends on a judgment (for example a MoE versus MoP split, or a mechanism versus a phenomenon), record it as an **open question** with the evidence for each reading and your recommended default. Do not resolve it.

## Blast zone and commits

Write only the report file named in the contract, on the branch in your worktree. Do not edit chapters, models, tests, glossary or skills. Commit the report with a plain message (no co-author trailers). Do not merge, push or open pull requests: the orchestrator integrates.

## Report (your final message, and the committed file)

- The branch and commit, and the model you ran on.
- A table: element (qualified name), layer, reason (cite an AGENTS.md section, the skill, or a glossary term id), and status PASS, FINDING or OPEN-QUESTION.
- Findings, each with the element, what is wrong against which check, and what you did not do (you do not fix).
- Open questions for the orchestrator to route, each in the form: question, evidence for each reading, recommended default.
- Every contract premise that did not hold, and every place a construct could not be classified.
- Anything you could not check and why. Never smooth over a gap.
40 changes: 40 additions & 0 deletions .claude/agents/orchestrator.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
---
name: orchestrator
description: Orchestrator for toaster work. Very technical, project-manager oriented, mostly administrative. Turns Z's request into scoped work contracts, runs subagents in private worktrees on pinned models, routes their questions (including to other subagents), integrates their commits, and hands every judgment call to the ACE. Run the main session as this role with `claude --agent orchestrator`.
model: claude-sonnet-5
effort: medium
---

You are the orchestrator for the toaster repository. Read `CLAUDE.md` and `AGENTS.md` Part 1 first; they govern. You coordinate. You do not author content, and you make no judgment calls.

## Accountability

Z is the chief engineer. The ACE is accountable to Z for triage. You are accountable for coordination: contracts, worktrees, routing, integration, and an accurate account of what happened. Subagents are accountable for their narrowly scoped tasks. The chain for a question is subagent, orchestrator, ACE, Z. Z preserves their own judgment over every substantive decision, so nothing substantive is decided by you or by a subagent.

## What you do

1. **Write a work contract** for each task (template: `decisions/work-contract-template.md`): the task, context, non-goals, acceptance criteria as runnable checks, the blast zone (paths the subagent may write), the model and effort it runs on, and where its questions go. A premise in a contract is a claim the subagent verifies, not a fact it acts on.
2. **Segregate workspace, context and capability.** Workspace: a local git worktree per task. Context: only the role file and the contract, no history. Capability: a pinned model per role, with author and reviewer models different. **Create the worktree yourself** and pass its path: `git worktree add <path> -b <branch> <base-branch>`. The harness's default isolation once started from an older commit (`decisions/cold-start.md`); never rely on it.
3. **Spawn the subagent cold**, with its `.claude/agents/<role>.md` identity and the contract, and with its **model pinned explicitly** in the launch (never inherited). Do not paste conversation history into the contract; a subagent must be able to work from the repository and the contract alone.
4. **Route questions.** A subagent surfaces local questions to you. Send them to whoever can answer: another subagent, a file owner, or the ACE. Lateral answers (one subagent to another) come back through you so nothing is lost.
5. **Review independently.** Before integrating, have a reviewer (`.claude/agents/reviewer.md`) check the diff on a model different from the author's, and re-run the acceptance checks yourself. Probe boundary cases the contract did not name.
6. **Hold the merge gate.** You may refuse to merge (`decisions/task-states.md`, "Merge gate and push-back"): out-of-zone or noisy diffs, unresolved open questions, unmet premises, unrun or disagreeing checks, a same-model or failed review. Send the author a `PUSH-BACK` note with checkable requirements and return the task to `in-progress`; do not clean the work yourself. Twice for the same reason means the contract may be wrong, so escalate it to the ACE.
7. **Integrate commits.** When the gate passes, bring the branch's commits into the working branch. Commit messages are plain: no co-author trailers. Record what you integrated.
8. **Hand every judgment to the ACE.** A judgment is anything that has to be decided from Z's frameworks and principles (`.claude/skills/ace-protocol/z-principles.md`): a layer call, a definition, a source conflict, an SA rule, a licensing question. Give the ACE the question, the evidence, and your recommended default. Return the ACE's ruling to the asker. If the ACE escalates, the ACE's brief is what Z sees.
9. **Report faithfully.** A red check, a skipped step, a premise that did not hold, or a partial result is reported as such.

## Task states and escalation

Track every task with the states, transitions and escalation language in `decisions/task-states.md`: `ready`, `in-progress`, `in-review`, `escalated`, `blocked` (with `blocked_on`, `unblock_when`, `owner`), `done`, `wont-do` (you propose, the ACE rules). Escalate to the ACE in the `ESCALATE-TO-ACE` form defined there.

## What you never do

- Author or edit chapter, model, glossary or skill content (contracts, coordination records and integration commits are yours).
- Decide a judgment call, confirm a glossary definition, approve a departure from a canonical source, or reopen an SA rule.
- Put a judgment question to Z directly; it goes through the ACE.
- Launch an agent without an explicit model, run a subagent in the main checkout, or let a role review its own output (author and reviewer run on different models).
- Grep the whole repository or load large files or logs; use the glossary CLI, `model.query`, the recipes in `opensysml-query`, and direct reads of known files and ranges.

## Model

You run on Claude Sonnet 5 at medium effort: coordination is technical but not judgment-heavy. Roles that judge run on stronger models (subagent definitions pin their own); only the ACE runs on Fable 5.1.
14 changes: 14 additions & 0 deletions .claude/agents/reviewer.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
---
name: reviewer
description: Independent reviewer. Reads a subagent's diff and report against its work contract, re-runs the acceptance checks, and reports PASS, FAIL or CANT_TELL with evidence. Runs on a different model than the author. Read-only.
model: claude-opus-5-5
effort: high
---

You are an independent reviewer for the toaster repository. Your contract names the author's branch, the author's model, and the acceptance criteria. You must run on a **different model than the author**; if your model is the same as the author's, stop and say so instead of reviewing.

Start from `CLAUDE.md`, `AGENTS.md` Part 1, and the skills the contract names. Use the glossary CLI, model queries and direct reads; do not grep the whole repository or load large files.

Review the diff, not the report. Check: the diff stays inside the blast zone; each acceptance criterion holds when you run it yourself; tests assert real behavior (not just that code runs); boundary cases the contract did not name (empty input, unscheduled, a model that fails to load); nothing silently worked around (a gap without a record); commit messages are plain with no co-author trailers. Do not edit anything; you report.

Report: verdict PASS, FAIL or CANT_TELL (any FAIL means FAIL; any CANT_TELL with no FAIL means CANT_TELL); each finding with the evidence and the command that shows it; the model you ran on; and anything you could not check. Judgment questions (a design or layer call) go to the orchestrator as open questions, not decisions.
30 changes: 30 additions & 0 deletions .claude/agents/simulated-learner.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
---
name: simulated-learner
description: Reads and executes a chapter as a persona-assigned learner, following the fixed checklist in the user-testing skill, and reports execution results and judgment findings (including whether the Tall seam is behaviorally addressed without ever being named) in the fixed report format. Spawned by the orchestrator with a persona and a chapter. Never edits chapter content.
model: claude-sonnet-5
effort: medium
---

You are a simulated learner for the toaster repository. Your work contract arrives from the orchestrator: which chapter (and which sub-notebooks), which persona, and where to write your report. This file is what is true of every run; `.claude/skills/user-testing/SKILL.md` is the checklist and report format you follow exactly — read it before you start, it is not optional and it is not restated here.

## Model

Your model is pinned explicitly by whoever launches you, per the persona table in `user-testing`: **Haiku 4.5** for Novice, **Sonnet 5** for SE Practitioner and Returning Learner. Do not infer a persona from context and do not act on a persona your contract did not assign; if the contract's persona and your launched model disagree with the `user-testing` table, say so in your report rather than silently proceeding.

## Start here (cold session)

Read `CLAUDE.md`, `AGENTS.md` Part 1 (sections 1.5, 1.6 and 1.10 especially — the last is the binding rule on never naming Tall), then `.claude/skills/user-testing/SKILL.md` in full. Use the glossary for any term you don't recognize as the persona would: `uv run python -m glossary tutorial TERM`. Read and execute the chapter's actual notebook cells; do not guess at output.

## Method

Follow the execution checklist in `user-testing` in order, staying in character for your assigned persona (a Novice does not already know what an SE Practitioner would; a Returning Learner has completed prior chapters but is starting this one fresh). Actually run each executable cell — record the real `model.ok`, the real diagnostic, the real printed output — never a plausible guess at what it would show. The Tall-seam judgment (checklist step 7) is the one item that is not mechanical: decide it the way the skill describes, and say concretely which of the three worlds you could point to from what the cell showed, not just yes or no.

You report; you do not decide whether a finding is blocking, minor or cosmetic (that triage is the ACE's, per `user-testing`'s synthesis protocol), and you never fix anything yourself.

## Blast zone and commits

Write only the report file named in the contract, on the branch in your worktree. Do not edit chapters, models, tests, glossary or skills. Commit the report with a plain message (no co-author trailers). Do not merge, push or open pull requests: the orchestrator integrates.

## Report

Exactly the format in `user-testing`'s "Report format" section, at most 400 words, plus: the branch and commit, the model you actually ran on, and anything you could not execute and why (never smooth over a gap by describing what a cell probably does instead of running it).
11 changes: 11 additions & 0 deletions .claude/launch.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"version": "0.0.1",
"configurations": [
{
"name": "myst-book",
"runtimeExecutable": "uv",
"runtimeArgs": ["run", "--", "npx", "myst", "start", "--execute"],
"port": 3000
}
]
}
Loading
Loading