docs(state): finalize §6 step 6 + tier-2 deferral for INT-310 tag-before-close [MON-5375]#22
Conversation
…ore-close [MON-5375] Adds §6.6 close-out retrospective: 5 of 6 port units shipped (jtk-cache, Atlassian shared config, gro, slck, nrq); sfdc parked and explicitly excluded from the v0.1.0 train (no cli-common dependency today). Commons API additions during the rollout: cache.WriteEnvelope (#20) and underscore in the cache-component regex (#21). Both additive; no breaking change required across 5 ports. Codifies the ten reusable patterns that emerged across the matrix: mutation-free Detect/Apply split, Load/LoadForRuntime + cfg!=nil contract, unexported xxxFromNewDir testable seam, malformed-old fails loud before CopyNeeded, companion-plaintext-file dual-probe with parsed-projection equality, 7-var statedirtest.Hermetic, the cleanup- command recovery contract (cleanup must not be blocked by the broken state it exists to wipe), init-gate ordering proof, reflect.DeepEqual on default-applied Config, path-identity dedup. Reaffirms §5b tier-2 deferral: only jtk needs the registry/DAG/fetcher shape today (gro uses tier-1 only; cfl has no cache). Promoting from one consumer would just relocate jtk code. Re-evaluate when cfl gains a cache. Closes #19
|
Findings Major: Atlassian PR numbers are wrong in the retrospective table.
The other rows match local history: gro Major: Pattern 5 overstates the shipped equality model for companion secret files. Same bullet also names Major: Pattern 9 is too broad as a family rule. Minor: Tier-2 deferral wording still says “third consumer.” |
- Atlassian PR numbers: #371→#373 (MON-5369 jtk-cache), #372→#374 (MON-5370 shared config). SHAs were already correct. - Pattern 5 (companion-secret-file dual-probe): format-dependent equality, not a single rule — text key=value uses parsed projection (nrq); opaque blobs use trimmed raw serialized value (gro's token.json). Generic shape described as old/new candidate enumeration + path-identity dedup, not nrq's specific helper trio. - Pattern 9 (material equality): use whole-struct DeepEqual on default-applied Config ONLY when every field is directly comparable and user-meaningful (slck/nrq); build an explicit projection when fields need semantic normalization (gro: OAuthClientPath default equivalence, sorted GrantedScopes). - §5b tier-2 reaffirmation: "second tier-2-shape consumer," not "third" (the criteria are ≥2 consumers).
|
Findings Major: Pattern 5 still overstates the “same helper as
That is true for nrq’s
Nit: Pattern 9 has a typo: “silent silence.” Everything else from r1 is addressed: table PR numbers now match local history, tier-2 wording matches the §5b criteria, and the equality section now correctly distinguishes gro from nrq. |
|
Findings Nit: Pattern 5’s gro wording is almost right, but “gro’s cleanup scope is config + cache only” is slightly imprecise. Everything else looks aligned now: PR numbers are correct, tier-2 wording matches the promotion criteria, pattern 5’s equality model is accurate, and pattern 9 now captures gro vs slck/nrq correctly. |
monit-reviewer
left a comment
There was a problem hiding this comment.
Automated PR Review
Reviewed commit: 60d0b66
Summary
No issues found. (2 info-level observations excluded)
3 PR discussion threads considered.
Completed in 1m 27s | $0.24 | sonnet | daemon 0.2.120 | Glorfindel
| Field | Value |
|---|---|
| Model | sonnet |
| Reviewers | hybrid-synthesis, documentation:docs-reviewer, harness-engineering:harness-architecture-reviewer, harness-engineering:harness-enforcement-reviewer, harness-engineering:harness-knowledge-reviewer |
| Engine | claude · sonnet |
| Reviewed by | pr-review-daemon · monit-pr-reviewer |
| Duration | 1m 27s wall · 1m 49s compute (Reviewers: 1m 06s · Synthesis: 19s) |
| Cost | $0.24 |
| Tokens | 66.8k in / 8.2k out |
| Turns | 5 |
Per-workstream usage
| Workstream | Model | In | Out | Cache read | Cache create | Cost |
|---|---|---|---|---|---|---|
| hybrid-synthesis | sonnet | 25.4k | 668 | 13.6k | 11.8k (1h) | $0.06 |
| documentation:docs-reviewer | haiku | 6.0k | 6.7k | 0 | 6.0k (1h) | $0.05 |
| harness-engineering:harness-architecture-reviewer | sonnet | 11.8k | 431 | 2.1k | 9.7k (1h) | $0.05 |
| harness-engineering:harness-enforcement-reviewer | sonnet | 11.8k | 76 | 2.1k | 9.7k (1h) | $0.04 |
| harness-engineering:harness-knowledge-reviewer | sonnet | 11.8k | 401 | 2.1k | 9.7k (1h) | $0.05 |
Re-reviews only run when @monit-reviewer is re-requested as a reviewer — push as many commits as you need, then re-request when ready. PRs targeting branches other than main, master are skipped, even when @monit-reviewer is re-requested.
Summary
INT-310 state-workstream close-out: doc-only PR that finalizes §6 step 6 with the port retrospective + codifies the 10 reusable patterns + reaffirms §5b tier-2 deferral.
After this merges, the tag-cut goes against HEAD of main:
Then the 4-consumer repin train: atlassian-cli (3 modules: tools/cfl, tools/jtk, shared/) → google-readonly → slack-chat-api → newrelic-cli. sfdc has no cli-common dependency today; it will adopt v0.1.0 when un-parked (MON-5374).
Test plan
Closes #19