ast-dataflow-tooling → production-readiness merge — kh-ast-S11 R-WP-S11-D runbook
Archived S504 (ruling R10): one-off session-scoped merge procedure (kh-ast-S11), already executed.
ast-dataflow-tooling → production-readiness merge — kh-ast-S11 R-WP-S11-D runbook
Section titled “ast-dataflow-tooling → production-readiness merge — kh-ast-S11 R-WP-S11-D runbook”Session: kh-ast-S11
Wave: Wave 2 (cross-track merge execution)
Source branch: ast-dataflow-tooling @ ffc46cf7 (Wave 1 verifier-gate fixes)
Target branch: production-readiness @ 816e46e5 (S51 reconciliation close-out)
Merge worktree: /tmp/kh-ast-merge-s11 on branch ast-dataflow-merge-s11
Merge base: 186a05bc
Why this doc exists
Section titled “Why this doc exists”S10 Wave 0-D produced a dry-run report (docs/specs/id-16-ast-dataflow-tool/investigations/S10-r-wp16-merge-dry-run.md) projecting 12 conflicts on the ast-dataflow-tooling → production-readiness merge. R-WP-S11-B pre-flight reduced the count to 4 from the original set (8 of 12 resolved). 5 NEW conflicts surfaced from production-readiness drift between the S10 dry-run and S11 execution (3 unpushed S51 commits on production-readiness added 2 generated-file conflicts and 1 backlog conflict; production-readiness ac51ae61 added a new spec-driven-implementation/SKILL.md ast-dataflow had also added, producing add/add). Two further drift-conflicts surfaced because production-readiness made changes to kh-workflow-orchestration{,-assessment}.md add/add files.
Final conflict count at merge execution: 11 conflicts (4 original + 5 from drift + 2 from S51 ratifications visible only at execution).
Conflict resolution decisions
Section titled “Conflict resolution decisions”| File | Resolution | Strategy | Notes |
|---|---|---|---|
.gitignore | take ast-dataflow’s | git checkout --theirs | WP-B already unified to superset of both |
.claude/skills/spec-driven-implementation/SKILL.md | take production-readiness’s | git checkout --ours | Add/add — production-readiness ac51ae61 is the canonical S51 task ID-N rewrite |
docs/generated/codebase-stats.json + .md | take production-readiness’s | git checkout --ours | Auto-generated; production-readiness version is fresher |
docs/generated/mcp-inventory.json + .md | take production-readiness’s | git checkout --ours | Same — auto-generated |
docs/plans/phase-0-investigation/0.9-collapse-candidates.md | honour ast-dataflow’s archive | git rm | Already at .planning/.archive/.specs/0.9-collapse-candidates.md (confirmed tracked) |
docs/plans/phase-0-investigation/kh-workflow-orchestration.md | take production-readiness’s | git checkout --ours | Add/add — production-readiness has the “Superseded by:” header + agent-name refs; ast-dataflow side was Prettier reformat |
docs/plans/phase-0-investigation/kh-workflow-orchestration-assessment.md | take production-readiness’s | git checkout --ours | Same pattern |
docs/reference/product-backlog.json | manual merge | Manual edit | Composed new last_updated string referencing both sides; otherwise ast-dataflow’s structural changes (23/O2 added) preserved on top of production-readiness’s S50 W3 schema formalisation |
main_session_output.md | honour ast-dataflow’s deletion | git rm | WP-B added to .gitignore; scratch file no longer tracked |
No Liam ratification needed at merge execution — all conflicts resolved deterministically per S10 dry-run §3 recipe + WP-B’s pre-flight notes. No surprises.
Files landed on production-readiness
Section titled “Files landed on production-readiness”- 135 files from ast-dataflow-tooling exclusive set (lib/ast-dataflow/, eslint-rules/, ~95 test fixtures, ~16 spec docs, scripts/ast-dataflow-cli.ts)
- 21 files auto-merged from the 33 overlap files
- 11 files manually resolved per the table above
- 2 files deleted as part of resolution (
0.9-collapse-candidates.mdarchived,main_session_output.mdgitignored)
Post-merge smoke (TO BE COMPLETED)
Section titled “Post-merge smoke (TO BE COMPLETED)”| Check | Status |
|---|---|
bun run test __tests__/lib/ast-dataflow/ (expect 215 pass) | TBD |
bun run test full (expect ≥12729 pass, 0 fail, 24 skip) | TBD |
bun lint (expect 0 errors) | TBD |
bun run format:check (expect pre-existing 22 warnings from production-readiness, no new) | TBD |
bun run knip (no new dead exports) | TBD |
Out-of-scope observations for follow-up
Section titled “Out-of-scope observations for follow-up”- RSS feed routes in NAKED_NO_AUTH — WP-A route-shape inventory flagged
app/api/feeds/[workspaceId]/rss/route.ts+app/api/feeds/[workspaceId]/rss/filtered/route.tsare not inproxy.tspublicRoutesallowlist but appear to be intentionally unauthenticated API routes. Backlog candidate: confirm intent or add to allowlist. - R-WP22 (MCP outputSchema full rollout, ~29h) — to be promoted to
production-readiness/docs/reference/product-backlog.jsonin a separate commit post-merge. WP-C’s housekeeping flagged the migration; this runbook records the handover. - 22 pre-existing prettier warnings on production-readiness — not introduced by this merge; consider a tidy-up workpackage on production-readiness.
Sequencing for next session
Section titled “Sequencing for next session”- Production-readiness → main merge is OUT OF SCOPE for S11.
- Open the next continuation prompt on the production-readiness track (counter
kh-prod-readiness-sN); ast-dataflow follow-on work (OPS-T1 codemod implementation, R-WP22 rollout, AST-S3-O1/O2, Pattern 6/8 skill promotion) is now production-readiness scope.
References
Section titled “References”docs/specs/id-16-ast-dataflow-tool/investigations/S10-r-wp16-merge-dry-run.md— original 12-conflict projectiondocs/specs/id-16-ast-dataflow-tool/investigations/S10-wave-0-synthesis.md§4.4 — S11 WP-D scopedocs/continuation-prompts/continuation-prompt-kh-ast-s11-final-codemod-specs-and-cross-track-merge.md§R-WP-S11-D- Source-branch tip:
ast-dataflow-tooling@ffc46cf7 - Target-branch tip pre-merge:
production-readiness@816e46e5