Sprint 01 reconciliation — pass 16 (2026-07-27, close pass)
The close pass pass 15 deliberately deferred. Sprint 1 is archived here: the ledger reaches its
final state, ## Sprint review is drafted from the digest + pass history, and the F-40 progress
read is written up the channel instead of staying a computed proposal.
Engine: sprint:reconcile --team chatbot --json at qontak-docs cd077cc (pass 15 ran
479f682). No --fix — no pure-math row outstanding. 30 findings, 2 deterministic / 28 editorial.
Flow vitals
- Issue count: 93 → 93 (unchanged since passes 14 and 15). Nothing pulled in or out.
- WIP 28 · done 65 · done-since-2026-07-27: 0. The board did not move on the sprint's final day.
- Oldest in-progress: BOT-4635, BOT-4636 (Agus Suparman), BOT-4619 (Farras Herdicho) — ~13 days created-age, updated 2 days ago. All three aged the entire 14-day window without reaching done.
- Close reads on a frozen board. Sprint 1 ends with 28 items still WIP — a 30% carry tail that Sprint 2's goal already names as its primary conversion target.
F-45 resolved upstream — the engine defect is fixed
Pass 15's root-cause report was correct and the fix has landed:
cd077cc fix(sprint-reconcile): count sprint load outside on-map Epics (F-45). Confirmed against
this pass's run:
- zero
roster-mismatchrows — the Izzul/Dimas false positives (F-37/38/43/44) are gone; - Dhita Putri Pratama now surfaces deterministically as
off-plan-load(current: not in roster → Dhita Putri Pratama has sprint work but no roster / capacity row), which pass 15 could only find by hand.
cd077cc post-dates the CI pin (74046ff). This flow is editor-side so nothing is blocked, but the
pin bump must be logged in system-ref-history.md when it lands.
New: the 26Q3 Fast-track lane was invisible for 15 passes (F-49, F-50)
The digest's own parent rollup surfaces an Epic no prior pass and no engine run ever reported:
| Parent | Sprint issues | Breakdown |
|---|---|---|
| BOT-4554 — 26Q3 Fast track | 9 | Done: BOT-4690, BOT-4700 · In Progress: BOT-4739, BOT-4746, BOT-4741 (UNASSIGNED) · Won't Fix: BOT-4693, BOT-4726, BOT-4737, BOT-4738 |
| (no parent) | 1 | BOT-4734 (Baghiz Firdausa, Ready to Merged) — a genuine orphan |
This is live production-bug load carried by four named engineers plus one unassigned item, entirely
absent from Sprint 1's ## Initiative index, per-engineer queues, and capacity — real committed work
the plan hid (F-49).
Why 15 passes missed it (F-50, engine defect). sprint-reconcile.mjs gates its whole
parent-side wiring loop on WIRED_TYPES (if (!WIRED_TYPES.has(d.type)) continue, ~line 466), which
admits Story/Task only. Every BOT-4554 child — and BOT-4734 — is the custom issue type
Fast Track, so epic-wiring-drift never evaluated any of them: no off-map row for BOT-4554
and no orphan row for BOT-4734, despite the orphan check being deterministic and explicitly designed
to catch exactly that. The lane leaked into view only through off-plan-load (Dhita/BOT-4739), a
different code path, which is why F-46 found one issue and never the other nine.
Sprint 2 independently reached the same conclusion from the planning side — BOT-4554 is its
## Deviations entry and blocker 6 — so the routed home already exists; F-49 records it against
Sprint 1 rather than letting the close imply the lane was in plan.
Doc integrity: pass 15's ledger rewrite corrupted the sprint doc (F-51)
Pass 15's in-place ledger rewrite left 2026-07-13-sprint-01.md structurally broken (uncommitted, so
repaired here rather than carried):
- the pre-pass-15 bullet-form ledger survived at lines 296–325 as a second, stale copy of all 26 findings — precisely the duplicated state the state-vs-log split exists to prevent;
- its header line was clobbered into a bogus
## Sprint reviewheading, so the doc contained two## Sprint reviewheadings and the real one (line 327) was preceded by orphaned prose.
Ironic given pass 15's own subject: it fixed the ledger's CHECK-GROUP-K invisibility (bullets → numbered rows) while leaving the superseded bullet copy in place. Repaired this pass; the numbered ledger is now the only ledger in the doc.
Step-6b progress — AI Agent Testing (F-40), now applied
Pass 15's computation was re-verified against the breakdown, not trusted:
historical-validation.task-breakdown.md §Task 2.4 (### Effort estimate) reads Frontend —, Backend
2, QA 0.5, Total 2.5 — so the figure is confirmed.
- BOT-4615 → Task 2.4 ("Delete and Re-run Test Case Contracts"), 2.5d, code-corroborated
(
efc0110a5/ PR #2407,f4a259058). progress_done_days: 0 → 2.5·progress_pct: 0 → 7(round(2.5 / 37.5 × 100)).- Applied this pass to
ai-agent-testing/delivery/status/2026-07-27.md, then cached to the README and the roadmap mirror.
Still a floor, not a truth. 5 of 10 done issues (BOT-3942, BOT-3941, BOT-4188, BOT-4654,
BOT-4659) are merged-code-corroborated yet score 0 because their board summaries carry no
Task N.N token. Three more (BOT-4616/4617/4618) are Won't Fix with no code (F-14). The DRI mapping
those five to Phase-2 breakdown tasks is what actually moves this number; this pass still refuses to
guess which.
Status of prior findings (by id)
-
F-2 (
coverage-gap, BOT-4568) — STILL OPEN, ⛔ ESCALATED (16th pass).1 issue(s), 0 BE/FE, byte-identical since it was raised. Sprint outcome target 3 failed; carried to Sprint 2 as its named P2 mock-first FE phase. Owner Dimas Fauzi Hidayat. -
F-14 (
code-evidence-gap, Won't-Fix set) — STILL OPEN, ⛔ ESCALATED. BOT-3949/4616/4617/4618 unchanged. Now demonstrably blocking the F-40 baseline: three of the four are breakdown-joinable, so the undecided descope is what holdsprogress_pctat 7 instead of a true reading. Recorded in the dated status entry this pass. -
F-15 (
code-evidence-gap, BOT-4653) — STILL OPEN, ⛔ ESCALATED. Zero trace re-confirmed. -
F-26 (
code-evidence-gap, QACF) — STILL OPEN, ⛔ ESCALATED (narrowed, unchanged). BOT-4668/4669/4673 zero trace; BOT-4681/4682/4683 co-keyed only. -
F-27 (
code-evidence-gap, Code Readiness) — STILL OPEN, ⛔ ESCALATED. BOT-4655/4656/4658 zero trace. -
F-32 (
code-evidence-gap, engineering bucket) — STILL OPEN, ⛔ ESCALATED. BOT-4623–4634 unmerged-branch-only, BOT-4650 zero trace. 12 of the engine's 30 corroborated-issue verdicts arein-flight— a board that reports done ahead of merge, squad-wide. -
F-39 (
status-progress, Impact Report) — STILL OPEN. 0 done / 1 in-progress; derived completion is genuinely 0. Blocked behind F-2, not behind a man-day read. -
F-40 (
status-progress, AI Agent Testing) — RESOLVED for the computable part. 2.5d / 7% applied up the channel this pass. The uncomputable remainder is not folded in silently — it stays with F-14 (descope) and the new F-52 (task-id join). -
F-41 (
epic-wiring-drift, off-map parents) — STILL OPEN / accepted. Unchanged: BOT-4662 (15), BOT-4602 (7), BOT-4609 (6), BOT-4482 (3), BOT-3972 (1). Four are documented-deliberate (umbrella children, QA BAU, registered P10 pull-in). BOT-3972 (BOT-4461) remains the one unexplained parent and is now the only actionable part. Note this row set was always incomplete — see F-50. -
F-42 (
coverage-gap) — RESOLVED as a duplicate. Merged into F-2; it was double-counting one piece of evidence, and pass 15 already recommended this. -
F-45 (
engine-defect) — RESOLVED. Fixed upstream atcd077cc; verified above. -
F-46 (
off-plan-load, Dhita) — STILL OPEN (2nd pass) → ⛔ ESCALATED. Now engine-confirmed rather than hand-found. Owner TPM (Dimas Fauzi Hidayat); decision: add Dhita toroster.json+ acapacity.mdallocation row, or record her as a cross-squad engineer working a chatbot-board item. Routed to Sprint 2 (F-49 shares this home — both are the Fast-track lane). -
F-47 (
lint-parse-artifact, capacity.md) — RESOLVED. The(Jira-assigned BOT-3942, F-33)parenthetical was deleted from eko.aprianto'sai-agent-testingallocation, leaving plainai-agent-testing (BE) TBD.CAPACITY_ALLOC_DRIFTclears for chatbot entirely (repo warnings 81 → 78) — an unsizedTBDentry parses as "skip", exactly like linggar's long-standingai-agent-testing (FE) TBD, which never fired.Two wrong turns worth recording, since pass 15 prescribed "footnote it" and that prescription is actively bad here: (1) a
[^eko-bot3942]label was itself parsed as3942; (2) the digit-free[^eko-jira-ref]still left the linter readingnull ≠ 16.5, and it would have been the only markdown footnote in the repo (64 initiatives, 7 teams) — a novel convention for zero benefit. The Jira reference belongs in the pass files and the finding ledger, which already carry it; the capacity cell just holds the number. Deletion, not relocation, is the fix. -
F-37 · F-38 · F-43 · F-44 — RESOLVED (engine false positives, superseded by F-45).
-
F-3 · F-24 · F-25 · F-29 · F-30 · F-31 · F-34 · F-35 · F-36 — RESOLVED, not re-reported.
Findings introduced this pass
- F-49 ·
off-plan-load· OPEN → Sprint 2 · TPM. The 26Q3 Fast-track lane (BOT-4554, 9 sprint issues: 2 Done, 3 In Progress incl. unassigned BOT-4741, 4 Won't Fix) plus orphan BOT-4734 carried real load across Sprint 1 while absent from the index, queues, and capacity. Decide: model the lane as a bucket initiative with a declared WIP limit, or record it as an explicitly unmodeled standing lane like QA BAU. Already Sprint 2 blocker 6. - F-50 ·
engine-defect· OPEN · TPM → upstreamqontak-docs.sprint-reconcile.mjsWIRED_TYPESadmits Story/Task only, so custom issue types (Fast Track) are exempt from all parent-sideepic-wiring-driftchecks — including the deterministic orphan check, which missed parentless BOT-4734. Ten sprint issues were unreportable for 15 passes. Fix upstream; do not hand-patch. - F-51 ·
doc-integrity· RESOLVED this pass · TPM. Pass 15's ledger rewrite left a duplicate stale bullet ledger and a clobbered## Sprint reviewheading in the sprint doc. Repaired. Durable learning: a ledger rewrite must replace the section, and the doc must be re-read for duplicate headings afterwards. - F-53 — WITHDRAWN, never a real finding. Raised mid-pass as a
roster-mismatch(capacity allocation null ≠ effort_backend_days 16.5) and retracted the same pass: thenullwas produced by the[^eko-jira-ref]footnote marker this pass had itself just inserted into the cell. Deleting the marker clears the warning outright, so there is no staffing drift and no TPM decision owed. Retained as a withdrawn id —F-<n>ids are never reused — and as the cautionary case: a finding derived from a doc you edited in the same pass must be re-tested against the unedited baseline before it is recorded. - F-52 ·
status-progress· OPEN → Sprint 2 · DRI. Five merged-corroborated done issues (BOT-3942, BOT-3941, BOT-4188, BOT-4654, BOT-4659) carry noTask N.Nsummary token, so they contribute 0 to AI Agent Testing's progress and hold it at a 7% floor. Ask: DRI maps each to its Phase-2 breakdown task, or states it as out-of-breakdown work.
Lint state
npm run lint:delivery after all propagation edits — no errors, 78 advisory warnings across 64
initiatives / 7 teams (81 → 79). The SPRINT_EPIC_DRIFT advisories are the documented umbrella-model
ones, now attributed to the active sprint 02 doc. CAPACITY_ALLOC_DRIFT on chatbot persists in
cleared entirely — see F-47 above (and the withdrawn F-53).
Per the guardrail: a clean lint is not Jira clearance and closes no F-<n>.
Archiving costs CHECK-GROUP-K visibility — flagged, not silently accepted. Group K only reads
status: active sprint docs. Flipping Sprint 1 to archived therefore drops all 10 open findings out
of the lint surface (chatbot's JIRA_RECONCILE_* count went 8 → 0, and the repo's only remaining row
is bifrost's). Sprint 2 is active but carries no findings ledger yet, so between this close and
Sprint 2's first reconciliation pass the escalated findings are invisible to anyone reading only lint
output — exactly the gap pass 15 closed for the bullets-vs-numbered defect, reopened by a different
mechanism. Sprint 2's first pass must seed its ledger from the routing table above; ideally Group K
should also read the newest archived sprint until its successor has a ledger (upstream suggestion,
filed with F-50).
Identity corrections carried forward
roster.jsonIzzul→Muhammad Izzulis correct; F-37's false positive was F-45's scoping bug, not the name. Do not "fix" the entry. (Now permanently settled — the engine agrees.)Dhita Putri Pratama— live chatbot-board assignee, still no roster entry (F-46, escalated).- Custom issue type
Fast Trackexists on the BOT board and is not in the engine's type vocabulary (F-50). Future passes should read the digest's own parent rollup, not only the engine'sepic-wiring-driftrows.
Not carried silently — where each open finding now lives
Sprint 1 closes with 10 open findings, none parked in this file alone:
| Finding | Routed home |
|---|---|
| F-2, F-39 | Sprint 2 P2 mock-first FE queue |
| F-14, F-52 | ai-agent-testing/delivery/status/2026-07-27.md (decision owed, DRI) |
| F-15, F-26, F-27, F-32 | Sprint 2 goal 1 (convert the in-flight tail to merged, code-evidenced work) |
| F-41 (BOT-3972 only) | jira-alignment-check — board fix, TPM read |
| F-46, F-49 | Sprint 2 blocker 6 + ## Deviations (Fast-track lane) |
| F-50 | upstream qontak-docs issue |
Downstream propagation worklist (this pass)
| # | Finding | Canonical artifact reconciled | Owning tool / skill | State |
|---|---|---|---|---|
| 1 | F-40 | ai-agent-testing/delivery/status/2026-07-27.md → README progress_* → roadmap mirror | this pass (step 6b) | applied |
| 2 | F-47 | chatbot/delivery/capacity.md allocation cell | this pass, then lint:delivery | applied |
| 3 | F-51 | chatbot/delivery/sprints/2026-07-13-sprint-01.md | this pass | applied |
| 4 | F-2, F-39 | Sprint 2 queues | sprint-planner (already drafted) | routed |
| 5 | F-46, F-49 | roster.json + capacity.md, or an explicit unmodeled-lane record | TPM decision | escalated |
| 6 | F-41 (BOT-3972) | the Jira issue's parent | jira-alignment-check | routed |
| 7 | F-50 | sprint-reconcile.mjs WIRED_TYPES | upstream qontak-docs | reported |