Skip to content

confluence-mdx: reverse-sync capability 차단 사유를 정규화합니다#1036

Merged
jk-kim0 merged 1 commit into
mainfrom
jk/fix-reverse-sync-capability-reasons
Jul 27, 2026
Merged

confluence-mdx: reverse-sync capability 차단 사유를 정규화합니다#1036
jk-kim0 merged 1 commit into
mainfrom
jk/fix-reverse-sync-capability-reasons

Conversation

@jk-kim0

@jk-kim0 jk-kim0 commented Jul 24, 2026

Copy link
Copy Markdown
Contributor

Summary

legacy patch builder가 operation 생성 전에 skip한 table/macro 변경도 typed PatchPlan의 stable capability contract로 정규화합니다.

  • unsafe_html_table_edit, raw_html_table, not_markdown_tableunsupported_capability + raw_html_table_edit로 변환합니다.
  • preserved_anchor_tableunsupported_capability + unknown_macro_mutation으로 변환합니다.
  • no_mapping, missing_roundtrip_sidecar를 strict plan의 missing_identity로 변환합니다.
  • legacy skip의 block ID를 exact sidecar provenance 또는 legacy MDX-sidecar 진단 mapping으로 원래 ChangeIntent에 연결합니다.
  • operation target identity가 없는 경우에도 issue를 intent에 연결하되 operation 실행 provenance에는 legacy fallback을 사용하지 않습니다.
  • 이미 issue가 연결된 intent에 후속 generic missing_identity를 중복 생성하지 않습니다.

OpenSpec

  • 기준 change: openspec/changes/complete-reverse-sync
  • 완료: unsupported table/macro 구조의 explicit block reason 전환
  • 계속 남는 범위: capability별 renderer strategy 추출, provenance-first planner 전환, visible segment model 확장

Safety impact

  • push 결과와 자동화가 legacy 내부 분기명에 의존하지 않고 stable reason/capability ID를 사용할 수 있습니다.
  • 하나의 unsupported 변경이 여러 issue로 보이는 진단 중복을 제거합니다.
  • raw table/macro 변경은 계속 fail-closed이며 이 PR에서 새 capability를 실행 가능하게 만들지 않습니다.
  • legacy mapping은 issue attribution에만 사용하며 executable target identity gate를 우회하지 않습니다.

Test plan

  • 전체 Python test: 1114 passed, 2 skipped
  • reverse-sync Python test: 791 passed
  • make test-convert: 21 passed
  • make test-reverse-sync: golden 16 passed, regression 43 passed
  • make test-byte-verify: fast/splice 각각 21/21 passed
  • openspec validate complete-reverse-sync --strict
  • git diff --check
  • Python compileall

Stack

🤖 Generated with Codex

Co-Authored-By: Atlas atlas@jk.agent

@vercel

vercel Bot commented Jul 24, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
querypie-docs Ready Ready Preview, Comment Jul 27, 2026 7:20am

Request Review

@jk-kim0
jk-kim0 force-pushed the jk/feat-reverse-sync-batch-report branch from 39c850e to bb39ed5 Compare July 27, 2026 06:13
@jk-kim0
jk-kim0 force-pushed the jk/fix-reverse-sync-capability-reasons branch from c80856f to df13a90 Compare July 27, 2026 06:13
@jk-kim0
jk-kim0 force-pushed the jk/feat-reverse-sync-batch-report branch from bb39ed5 to b8d5206 Compare July 27, 2026 07:11
Base automatically changed from jk/feat-reverse-sync-batch-report to main July 27, 2026 07:15
legacy table/macro skip을 원래 intent와 typed capability에 연결합니다. strict plan에는 stable unsupported_capability 또는 missing_identity만 노출하고 중복 issue를 만들지 않습니다.

Co-Authored-By: Codex <noreply@openai.com>
@jk-kim0
jk-kim0 force-pushed the jk/fix-reverse-sync-capability-reasons branch from df13a90 to 6754f37 Compare July 27, 2026 07:15
@jk-kim0
jk-kim0 merged commit cf6ddf3 into main Jul 27, 2026
6 of 7 checks passed
@jk-kim0
jk-kim0 deleted the jk/fix-reverse-sync-capability-reasons branch July 27, 2026 07:19
jk-kim0 added a commit that referenced this pull request Jul 27, 2026
## Summary
repository의 reverse-sync skill과 CLI help를 현재 offline diagnostic / online
manifest publish lifecycle에 맞춥니다.

- offline `verify`/`debug`가 diagnostic이며 `push_eligible=false`임을 명확히
합니다.
- `push --dry-run`, inline publish, explicit `push --manifest`의 차이를
설명합니다.
- immutable run artifact, manifest integrity, preflight, postcondition,
`--yes` 경계를 문서화합니다.
- batch schema v1의 partial success, exit code, `not_attempted`,
`resume_manifests`를 추가합니다.
- 지원 상태와 stable reason code, canary 이전 production batch 금지를 반영합니다.
- 존재하지 않는 `var/pages.yaml`과 `--xhtml` 안내를 현재 `pages.qm.yaml`,
`--page-id`, `--page-dir`로 수정합니다.
- branch mode에서 이전에는 조용히 무시되던 `--page-id`와 `--page-dir`를 fail-fast로
거부합니다.

## OpenSpec
- 기준 change: `openspec/changes/complete-reverse-sync`
- 완료: `.agents/skills/reverse-sync/SKILL.md`의 current lifecycle/artifact
경로 동기화
- accepted spec 승격과 historical plan archive는 canary/P1 완료 후 별도로 남습니다.

## Safety impact
- offline `pass`를 publish 가능한 proof로 오해하지 않도록 합니다.
- flat compatibility artifact를 publisher 입력으로 안내하지 않습니다.
- `--yes`가 safety gate를 우회한다는 오해를 막습니다.
- branch에서 적용되지 않는 page option을 성공한 것처럼 보이지 않고 실행 전에 차단합니다.

## Test plan
- [x] 전체 Python test: 1117 passed, 2 skipped
- [x] reverse-sync Python test: 794 passed
- [x] `make test-reverse-sync`: golden 16 passed, regression 43 passed
- [x] `openspec validate complete-reverse-sync --strict`
- [x] stale `pages.yaml`/`--xhtml` reference search
- [x] `git diff --check`
- [x] Python `compileall`

## Stack
- Base: #1036
- Batch report: #1035
- Explicit manifest publish: #1034
- Typed plan: #1033
- Strict provenance identity: #1032
- Input/dependency gates: #1031
- Strict proof: #1030
- Publisher foundation: #1029
- 선행 PR merge 후 base를 순차적으로 `main`으로 변경할 수 있습니다.

🤖 Generated with Codex

Co-Authored-By: Atlas <atlas@jk.agent>

Co-authored-by: Codex <noreply@openai.com>
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