Skip to content

spec: 009 Phase 1 — the task list, and the three places the corpus had moved - #114

Merged
iancooper merged 3 commits into
masterfrom
docs/spec-009-tasks
Aug 24, 2026
Merged

spec: 009 Phase 1 — the task list, and the three places the corpus had moved#114
iancooper merged 3 commits into
masterfrom
docs/spec-009-tasks

Conversation

@iancooper

Copy link
Copy Markdown
Member

Spec 009's Phase 1: the plan ratified, the corpus re-measured, #67 re-checked. Three tasks, all three now ticked. No page under contents/ is touched, so nothing here changes the published site.

What lands

  • tasks.md — 39 tasks across 12 phases, reviewed and approved 2026-08-24. Its §2 is errata: nine items re-measured 2026-08-23 against a corpus Spec 010 moved after 009 was approved.
  • Dated pointers into design.md at the places a writer would be misled. Pointers only — the stale blocks stay as evidence of when they were written.
  • The TodoApi finding, raised upstream as Brighter#4272/#4273/#4274.

The two premises that had moved

  • SUMMARY.md already has a ## Get Started section, and it is not ours. 010 built it as section 1. Design's Before and After describe neither the old tree nor the new one. Settled: the five entries join the existing section. Free — slugs are filename-derived, so re-ordering inside a section moves no URL, and S2 goes 3 → 8 of 12.
  • A sample under samples/ is not necessarily built by Brighter's CI. Brighter.slnx named 109 sample .csproj against 110 on disk. That premise is stated in three places — CLAUDE.md's exception, 009's README, AC4 — and all three trace to one unexamined assumption. AC4's check became presence in the solution plus a green run naming the projects, never presence in the directory.

Task 1.2 asked for two pointers and there were three

The third is design § D2's "do not link before it lands" about #dispatcher. Spec 011 merged the duplicate definitions, so it is the only sentence in the document instructing a writer not to do something that is now safe. Task 6.1 already carried the correction — which is why the task was written as two — but design § D2 is Task 6.1's own stated Input.

A count inside a task body is a claim about the corpus like any other.

Task 1.3 — #67 and #72

#67 is OPEN, two comments, unchanged since 2026-08-03, no reply from the issue author. PR #72 was checked too, because that is the other place pushback was invited: merged, one comment (ours), zero reviews. The two positions flagged for pushback — Diátaxis as an authoring discipline, and the prose-vs-generated reference distinction — are unchallenged rather than endorsed. Nothing obliges a change of shape.

Gates

linkcheck.py                 No broken internal links (144 files checked).
pagelint.py                  0 errors, 790 warnings across 143 pages
pagelint.py --changed        0 errors — and vacuous, legitimately: 0 code blocks strict
urlmap.py --check-shape      0 failures — 142 pages, 12 sections, deepest 4, widest 10
urlmap.py --check-redirects  0 failures — 77 entries, 7858 bytes, printable ASCII

The --changed run reached 0 code blocks, and its scope line says so. That is the correct result for a prose-only change outside contents/, not a pass to lean on.

Next: Phase 2, the five missing glossary terms, which gates rungs 3 and 4.

🤖 Generated with Claude Code

iancooper and others added 3 commits August 24, 2026 09:16
…ad moved

009's requirements and design were approved 2026-08-03. Spec 010 completed
2026-08-22 and moved the tree underneath them, so this list opens with errata
(§2, nine items measured 2026-08-23) rather than with planning.

Two of the nine change what someone would do:

- SUMMARY.md already has a `## Get Started` section and it is not ours. 010
  built it as section 1, holding WhyBrighter / BasicConcepts / ShowMeTheCode.
  Design's Before shows `## Overview` and its After creates the section;
  neither describes the file. §2.1 settles it — the five entries join the
  existing section, ladder above the orientation pages. Free: slugs are
  filename-derived, so re-ordering inside a section moves no URL, and S2 goes
  3 to 8 of 12.

- A sample under samples/ is not necessarily built by Brighter's CI. CI runs
  `dotnet build` at the root, which resolves to Brighter.slnx; the solution
  names 109 sample .csproj and there are 110 on disk. TodoApi is in the
  directory, not in the build. That premise is the whole case for the
  CLAUDE.md samples exception and it is stated in three places, all resting on
  one unexamined assumption. AC4's check is now presence in Brighter.slnx plus
  a green run naming the projects.

Also measured: all five D12 glossary terms are still absent, the twelve
present anchors still resolve (design's line numbers for them are stale),
`#dispatcher` is unblocked since 011 merged the duplicate, `Tutorial` is a
page type no page in 142 has ever used, and every Brighter source citation in
the design still holds line-exact 140 commits on — while all eight of its
Docs-side page lengths have moved.

One sequencing change: versioncheck.py moves from design's step 6 to Phase 4,
immediately after rung 1, so its first CI run scans a real page and finds a
real pin instead of passing vacuously for several phases.

Reviewed 2026-08-24; four findings applied. The total moved 38 to 39 — Task
3.5 was added for a CLAUDE.md entry design asked for in a paragraph that no
box covered. Both counting methods re-derived afterwards, not incremented,
and they disagreed by one until the phase table was corrected too.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
§2.4 said reporting TodoApi upstream was out of scope. Raised at the
maintainer's direction instead: Brighter#4272 for the defect, #4274 fixing it
(five lines of Brighter.slnx — the sample builds clean, so nothing was keeping
it out), #4273 for a CI guard that fails the build when any .csproj is
unreferenced. None is a 009 deliverable and no phase blocks on them.

Two things the guard work turned up, both recorded because each cost a wrong
answer first:

- Compare against `git ls-files`, not `find`. `find` reads the working
  filesystem, so on a case-insensitive macOS checkout it reports
  src/Paramore.Brighter.MessageScheduler.Aws where the repository and Linux CI
  both have .AWS. That phantom mismatch was nearly published as a second
  finding in a public issue.
- Brighter's master is currently red on one net10.0 test in
  Transforms.Adaptors.Tests, unrelated to any of this. Task 5.3 now says to
  read which check failed before concluding anything about your own sample —
  the assumption that a red master implicated my change was wrong, and so was
  the earlier assumption that a green one proved coverage.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…isleads

Task 1.2 asked for dated pointers at the two places in design.md a writer
would be misled by. There were three. The third is § D2's "do not link
before it lands" about #dispatcher: 011 merged the duplicates, so it is the
only sentence in the document telling a writer not to do something that is
now safe — the phase preamble's own criterion for a permitted pointer.
Task 6.1 already carried the correction, which is why the task said two: the
writer following the task list was never at risk, the writer following
design § D2 — Task 6.1's stated Input — was.

The D12 pointer sits below the anchor table AND its Confirmed-present list,
because the stale line numbers §2.2 corrects are in the list.

Task 1.3: #67 OPEN, unchanged since 2026-08-03, no reply from the issue
author. PR #72 checked too, since that is the other place pushback was
invited: merged, zero reviews. Both flagged positions are unchallenged
rather than endorsed, and nothing obliges a change of shape.

README § Next Steps marked spent — three resolved items sitting under a
checklist that contradicts them, one of them calling the ladder three rungs.
Marked, not deleted, on §2's principle that stale text dates itself.

Totals re-derived, not incremented: 39 tasks, 3 done, 36 open.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@iancooper
iancooper merged commit b256038 into master Aug 24, 2026
6 checks passed
@iancooper
iancooper deleted the docs/spec-009-tasks branch August 24, 2026 08:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant