docs(plan): demote the embedded Track A backlog headings so task lookup by '### Task N:' is unambiguous
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01FKFStjEFzpGyLq5bMpWxTd
This commit is contained in:
co-authored by
Claude Opus 5
parent
4bd651b159
commit
49fc6ac6a5
@@ -2993,7 +2993,7 @@ Reading key: `W1-T1-03` = wave 1, Track A Task 1, finding 3. Files are repositor
|
||||
|
||||
## Wave 1
|
||||
|
||||
### Task 1 — `block_insert(attributes=…)` (ezdxf)
|
||||
#### Track A Task 1 — `block_insert(attributes=…)` (ezdxf)
|
||||
|
||||
| ID | File | Finding | Disposition |
|
||||
|---|---|---|---|
|
||||
@@ -3007,7 +3007,7 @@ Reading key: `W1-T1-03` = wave 1, Track A Task 1, finding 3. Files are repositor
|
||||
| W1-T1-08 | tests/test_block_insert_attributes.py | `attributes=None` yields no ATTRIBs headlessly while COM's `InsertBlock` instantiates ATTDEF defaults; refusal types diverged (ValueError vs RuntimeError). | refusal type: fixed-in-task-1 (COM raises the same ValueError); default ATTRIBs: deferred-1.7 (engine divergence on ATTDEF defaults) |
|
||||
| W1-T1-09 | backends/ezdxf_backend.py | `block_explode` drops the ATTRIB text. | fixed-in-task-2 |
|
||||
|
||||
### Task 2 — `backends/block_specs.py`
|
||||
#### Track A Task 2 — `backends/block_specs.py`
|
||||
|
||||
| ID | File | Finding | Disposition |
|
||||
|---|---|---|---|
|
||||
@@ -3020,7 +3020,7 @@ Reading key: `W1-T1-03` = wave 1, Track A Task 1, finding 3. Files are repositor
|
||||
| W1-T2-07 | backends/block_specs.py | Refusal messages echo the caller's value unbounded (`got {value!r}`; measured 2 MB messages). | deferred-1.7 (truncate with reprlib) |
|
||||
| W1-T2-08 | backends/block_specs.py | Same as W1-T2-03 (unknown keys such as `rotation` silently dropped). | deferred-1.7 (with W1-T2-03) |
|
||||
|
||||
### Task 6 — ISA-5.1 tag grammar
|
||||
#### Track A Task 6 — ISA-5.1 tag grammar
|
||||
|
||||
| ID | File | Finding | Disposition |
|
||||
|---|---|---|---|
|
||||
@@ -3032,7 +3032,7 @@ Reading key: `W1-T1-03` = wave 1, Track A Task 1, finding 3. Files are repositor
|
||||
| W1-T6-06 | tests/data/isa51_tags.json | No fixture row for K (rate of change / control station), M trailing, O readout, B/N/X user-defined readouts. | deferred-1.7 (≈5 rows) |
|
||||
| W1-T6-07 | engineering/pid/tags.py | O/C trailing narrowed to Z-first tags beyond the spec text. | accepted-limitation (documented resolution of a spec/fixture conflict) |
|
||||
|
||||
### Task 12 — `engineering/pid/lines.py`
|
||||
#### Track A Task 12 — `engineering/pid/lines.py`
|
||||
|
||||
| ID | File | Finding | Disposition |
|
||||
|---|---|---|---|
|
||||
@@ -3046,7 +3046,7 @@ Reading key: `W1-T1-03` = wave 1, Track A Task 1, finding 3. Files are repositor
|
||||
|
||||
## Wave 2
|
||||
|
||||
### Task 3 — `block_define`
|
||||
#### Track A Task 3 — `block_define`
|
||||
|
||||
| ID | File | Finding | Disposition |
|
||||
|---|---|---|---|
|
||||
@@ -3059,7 +3059,7 @@ Reading key: `W1-T1-03` = wave 1, Track A Task 1, finding 3. Files are repositor
|
||||
| W2-T3-07 | backends/ezdxf_backend.py | `attdefs or []` turns `{}`/`''` into "no ATTDEFs"; a non-str `name` raises AttributeError. | deferred-1.7 |
|
||||
| W2-T3-08 | backends/ezdxf_backend.py | `block_insert` without `attributes` carries none of the ATTDEF defaults (COM does). | deferred-1.7 (with W1-T1-08) |
|
||||
|
||||
### Task 4 — XDATA
|
||||
#### Track A Task 4 — XDATA
|
||||
|
||||
| ID | File | Finding | Disposition |
|
||||
|---|---|---|---|
|
||||
@@ -3071,7 +3071,7 @@ Reading key: `W1-T1-03` = wave 1, Track A Task 1, finding 3. Files are repositor
|
||||
| W2-T4-06 | backends/xdata_specs.py | The reserved-app rule blocks reading `ACAD` by name while the unfiltered read returns it; other AutoCAD-owned apps are writable. | deferred-1.7 |
|
||||
| W2-T4-07 | README.md | Snapshot paragraph contradicted itself; collected-tests drift. | fixed-in-track-A (Task 21) |
|
||||
|
||||
### Task 5 — `engineering/pid/xdata.py`
|
||||
#### Track A Task 5 — `engineering/pid/xdata.py`
|
||||
|
||||
| ID | File | Finding | Disposition |
|
||||
|---|---|---|---|
|
||||
@@ -3084,7 +3084,7 @@ Reading key: `W1-T1-03` = wave 1, Track A Task 1, finding 3. Files are repositor
|
||||
| W2-T5-07 | engineering/pid/xdata.py | A non-dict payload is written and can never be read back. | deferred-1.7 |
|
||||
| W2-T5-08 | tests/test_pid_xdata.py | No multi-chunk payload round trip through a backend. | deferred-1.7 (test gap; the path was verified by hand) |
|
||||
|
||||
### Task 7 — symbol framework
|
||||
#### Track A Task 7 — symbol framework
|
||||
|
||||
| ID | File | Finding | Disposition |
|
||||
|---|---|---|---|
|
||||
@@ -3096,7 +3096,7 @@ Reading key: `W1-T1-03` = wave 1, Track A Task 1, finding 3. Files are repositor
|
||||
| W2-T7-06 | engineering/pid/symbols.py | `register()` overwrites silently; `list_symbols()` returns variants by reference. | deferred-1.7 |
|
||||
| W2-T7-07 | engineering/pid/geometry.py | `bbox_of` samples arcs at 1° and can under-report by 3.8e-5·r. | accepted-limitation (sub-lineweight) |
|
||||
|
||||
### Task 8 — valves
|
||||
#### Track A Task 8 — valves
|
||||
|
||||
| ID | File | Finding | Disposition |
|
||||
|---|---|---|---|
|
||||
@@ -3105,7 +3105,7 @@ Reading key: `W1-T1-03` = wave 1, Track A Task 1, finding 3. Files are repositor
|
||||
| W2-T8-03 | engineering/pid/symbols_valves.py | The diaphragm *body* dome floats 1 mm above the bow-tie. | deferred-1.7 (cosmetic) |
|
||||
| W2-T8-04 | engineering/pid/symbols_valves.py | The `signal` port and the TAG/DESC text share x = 0 above the actuator; a signal line crosses the tag. | accepted-limitation (spec §4.7 placement; a tag/line overlap critique is a 1.7 item, with W2-T9-05) |
|
||||
|
||||
### Task 9 — equipment
|
||||
#### Track A Task 9 — equipment
|
||||
|
||||
| ID | File | Finding | Disposition |
|
||||
|---|---|---|---|
|
||||
@@ -3117,7 +3117,7 @@ Reading key: `W1-T1-03` = wave 1, Track A Task 1, finding 3. Files are repositor
|
||||
| W2-T9-06 | engineering/pid/symbols_equipment.py | `air_cooler` fan cross pokes 0.046 mm outside its circle. | deferred-1.7 (cosmetic, ±1.75) |
|
||||
| W2-T9-07 | engineering/pid/symbols_equipment.py | Seven origins are not the bbox centre (spec §4.2). | accepted-limitation (deliberate mounting points; spec text to reconcile) |
|
||||
|
||||
### Task 10 — vessels
|
||||
#### Track A Task 10 — vessels
|
||||
|
||||
| ID | File | Finding | Disposition |
|
||||
|---|---|---|---|
|
||||
@@ -3132,13 +3132,13 @@ Reading key: `W1-T1-03` = wave 1, Track A Task 1, finding 3. Files are repositor
|
||||
|
||||
## Waves 3–4
|
||||
|
||||
### Task 11 — `pid_symbol_list` / `pid_symbol_insert`
|
||||
#### Track A Task 11 — `pid_symbol_list` / `pid_symbol_insert`
|
||||
|
||||
| ID | File | Finding | Disposition |
|
||||
|---|---|---|---|
|
||||
| W3-T11-01 | engineering/layers.py | `PROCESS-LINE-TEXT` inserted at position 9; spec said "16th entry". | accepted-limitation (count matches; ordinal wording only) |
|
||||
|
||||
### Task 13 — `pid_line_draw`
|
||||
#### Track A Task 13 — `pid_line_draw`
|
||||
|
||||
| ID | File | Finding | Disposition |
|
||||
|---|---|---|---|
|
||||
@@ -3154,7 +3154,7 @@ Reading key: `W1-T1-03` = wave 1, Track A Task 1, finding 3. Files are repositor
|
||||
| W3-T13-10 | README.md | Snapshot line edited without the collected-tests figure. | fixed-in-track-A (Task 21) |
|
||||
| W3-T13-11 | server.py | An unknown endpoint handle and a flat waypoint list surface as "Internal error" rather than a named refusal. | deferred-1.7 (with W1-T12-04) |
|
||||
|
||||
### Task 14 — `pid_graph`
|
||||
#### Track A Task 14 — `pid_graph`
|
||||
|
||||
| ID | File | Finding | Disposition |
|
||||
|---|---|---|---|
|
||||
@@ -3178,7 +3178,7 @@ Reading key: `W1-T1-03` = wave 1, Track A Task 1, finding 3. Files are repositor
|
||||
| W3-T14-18 | engineering/pid/symbols.py | `strict=False` keeps a diagonal port's local angle under non-uniform scale. | accepted-limitation (unreachable: all 243 catalogue ports are axis-aligned) |
|
||||
| W3-T14-19 | backends/ezdxf_backend.py | `mirrored` is `True` for a tilted INSERT with a negative-z normal (COM twin too). | deferred-1.7 (`flat and z < 0`) |
|
||||
|
||||
### Task 15 — deliverables
|
||||
#### Track A Task 15 — deliverables
|
||||
|
||||
| ID | File | Finding | Disposition |
|
||||
|---|---|---|---|
|
||||
@@ -3193,7 +3193,7 @@ Reading key: `W1-T1-03` = wave 1, Track A Task 1, finding 3. Files are repositor
|
||||
| W3-T15-09 | server.py | The three deliverable tools expose only `tolerance`/`scope`, not `label_search`/`include_foreign`. | deferred-1.7 |
|
||||
| W3-T15-10 | engineering/pid/deliverables.py | `signal_lines` counts every edge on a bubble regardless of class. | deferred-1.7 |
|
||||
|
||||
### Task 16 — critique focuses
|
||||
#### Track A Task 16 — critique focuses
|
||||
|
||||
| ID | File | Finding | Disposition |
|
||||
|---|---|---|---|
|
||||
@@ -3205,7 +3205,7 @@ Reading key: `W1-T1-03` = wave 1, Track A Task 1, finding 3. Files are repositor
|
||||
| W3-T16-06 | engineering/pid/critique.py | A mechanical block whose name holds a keyword token (`OIL_FILTER`) counts as P&ID content and can fail finalize. | accepted-limitation (spec §9.2 mandates the heuristic; README "Known limitations" states it) |
|
||||
| W3-T16-07 | engineering/pid/critique.py | `_duplicate_tags` scores a text-derived (guessed) tag as a gate-failing error. | deferred-1.7 (warning for `tag_source: text`) |
|
||||
|
||||
### Task 17 — `pid_from_spec`
|
||||
#### Track A Task 17 — `pid_from_spec`
|
||||
|
||||
| ID | File | Finding | Disposition |
|
||||
|---|---|---|---|
|
||||
@@ -3222,7 +3222,7 @@ Reading key: `W1-T1-03` = wave 1, Track A Task 1, finding 3. Files are repositor
|
||||
| W4-T17-11 | engineering/pid/spec.py | String-typed optional keys unvalidated (`arrow: "no"` truthy; `number: 123` bare TypeError; `id` with a dot). | deferred-1.7 |
|
||||
| W4-T17-12 | README.md | README showcase half incomplete; gate red. | fixed-in-track-A (Task 21) |
|
||||
|
||||
### Task 19 — tag parse, resources, prompt
|
||||
#### Track A Task 19 — tag parse, resources, prompt
|
||||
|
||||
| ID | File | Finding | Disposition |
|
||||
|---|---|---|---|
|
||||
@@ -3233,7 +3233,7 @@ Reading key: `W1-T1-03` = wave 1, Track A Task 1, finding 3. Files are repositor
|
||||
| W4-T19-05 | engineering/pid/tags.py | `equipment_prefixes={}` discarded; non-string values pass. | deferred-1.7 (with W1-T6-05) |
|
||||
| W4-T19-06 | README.md | Release gate red on the collected-tests figure. | fixed-in-track-A (Task 21) |
|
||||
|
||||
### Task 18 — `TOOL_PACKS`
|
||||
#### Track A Task 18 — `TOOL_PACKS`
|
||||
|
||||
| ID | File | Finding | Disposition |
|
||||
|---|---|---|---|
|
||||
@@ -3244,7 +3244,7 @@ Reading key: `W1-T1-03` = wave 1, Track A Task 1, finding 3. Files are repositor
|
||||
| W4-T18-05 | tests/test_tool_packs.py | The pack test compares against a hand-copied set, never the registry. | deferred-1.7 (assert against `_registered_tools()` tags) |
|
||||
| W4-T18-06 | server.py | Under `TOOL_PACKS=core` the P&ID prompt and resources are still advertised. | accepted-limitation (spec §12 scopes packs to tools) |
|
||||
|
||||
### Task 20 — benchmark v4
|
||||
#### Track A Task 20 — benchmark v4
|
||||
|
||||
| ID | File | Finding | Disposition |
|
||||
|---|---|---|---|
|
||||
@@ -3254,7 +3254,7 @@ Reading key: `W1-T1-03` = wave 1, Track A Task 1, finding 3. Files are repositor
|
||||
| W4-T20-04 | tests/test_benchmark_v4.py | No test executes `_task_pid_roundtrip`. | deferred-1.7 (Task 6 of the hardening plan runs it by hand) |
|
||||
| W4-T20-05 | benchmarks/README.md | A/B rows said 29 checks over a 26-check report. | fixed-in-track-A (Task 21) |
|
||||
|
||||
### Task 21 — docs and smoke
|
||||
#### Track A Task 21 — docs and smoke
|
||||
|
||||
| ID | File | Finding | Disposition |
|
||||
|---|---|---|---|
|
||||
|
||||
Reference in New Issue
Block a user