-
Notifications
You must be signed in to change notification settings - Fork 0
Development Ledger
이 문서는 AXCalib의 단일 작업 진행 원장이다. 현재 P(Phase), WP(Work Package), G(Gate),
실행 일정, Active Slice, 검증 결과, 특이사항과 작업 이력을 한곳에서 관리한다. 제품 요구사항은
WORK_SPEC.md, 목표와 수용기준은 GOAL.md, 기술·UX 설계는 DESIGN.md가 계속 기준이며, 이
원장은 그 기준에 따라 지금 무엇을 하고 있고 무엇이 끝났는지를 보여 주는 운영 기준정보다.
다음 시점에는 같은 change set에서 이 문서를 반드시 갱신한다.
- 작업 시작: Active Slice, 범위, 선행조건, 목표 Gate와 예상 Exit Evidence를 기록한다.
- 작업 중: blocker, 범위변경, 실패, 재시도와 중요한 판단을
특이사항에 기록한다. - 단계 종료: 실제 변경 파일, 검증 명령·결과, 미검증 범위와 다음 작업을 기록한다.
- Gate 판정: reference/quality/operational 수준과 승인 주체를 분리해 기록한다.
- 일정 변경: 변경 이유, 영향받는 WP/Gate와 새 dependency를 기록한다.
- 2~8절은 현재 상태를 반영하도록 갱신한다.
- 9절 작업 이력은 append-only다. 과거 기록을 조용히 고치지 않고 정정 entry를 추가한다.
- 최신 이력 ID는 frontmatter의
last_history_id와 같아야 한다. - 날짜·담당자·공수가 승인되지 않았으면
TBD로 두고 dependency와 Exit Evidence로 계획한다. - 상세 요구·결정·위험을 이 문서에 복제하지 않고 원문 파일을 링크한다.
- 단계 완료는 코드 완료만 뜻하지 않는다. 문서, diagram, test/eval과 이 원장 갱신까지 포함한다.
| 상태 | 의미 |
|---|---|
verified |
정의된 Exit Evidence가 현재 범위에서 통과함 |
offline_reference |
local/synthetic fixture로 실행되지만 운영 품질 완료가 아님 |
active |
현재 구현·검증 중 |
ready |
선행조건을 만족해 다음 작업으로 착수 가능 |
planned |
범위와 dependency는 있으나 미착수 |
blocked_policy |
사람의 정책·데이터·권한 결정이 필요 |
not_started |
아직 계약 또는 구현을 시작하지 않음 |
| 항목 | 현재 값 |
|---|---|
| 현재 Phase | P5 Evaluation; WP-02.Q2 selectable reader local contract 완료 |
| 현재 Work Package | WP-05.Q3 exact on-prem Qwen execution; 사내 endpoint 실행 준비 |
| Active Slice |
WP-05.Q3 (ready; exact model identity와 승인된 테스트 PPTX report 필요) |
| 현재 Gate | G3 Intelligence reference verified / quality pending; G4 local interface checkpoint도 유지 |
| 다음 Gate | G3 exact-model evidence; 품질 baseline은 Owner gold가 별도 필요 |
| 일정 방식 | dependency-only; calendar baseline은 Owner·공수 확정 후 추가 |
| 최근 회귀 | 200 tests(139/40/21; integration 9/25/6 shards), EX catalog 15, 10 eval groups, Ruff, Pyright/validate 0/0 |
| 현재 경계 | exact on-prem Qwen registration/completion·PDF/DOCX·실제 external parser·rubric/gold·Vector DB·full API·remote identity/upload/distributed worker/Web·운영 인증 미완료 |
AXCalib는 실제 제안 PPTX의 등록심의·수행·완료평가 two-gate slice와 교육 프로그램 progression을
Library 호출로 연결했다. 제출 프로젝트의 completion_accepted는 교육 milestone 근거가 되지만,
과정 전체는 별도 notification과 관리자 HITL을 통과해야 완료된다. Agent는 어느 Gate에서도 사람의
최종 인증결정을 대신하지 않는다.
아래 Gantt에서 2026-07-21 이후 날짜와 bar 길이는 dependency와 상대 작업량을 보여 주는 계획용 anchor다. 승인된 납기 약속이 아니다. 실제 착수일·완료일은 6절과 작업 이력에 별도로 기록한다.
gantt
title AXCalib P/WP/G Dependency Gantt - future dates are planning anchors
dateFormat YYYY-MM-DD
axisFormat %m-%d
todayMarker stroke-width:2px,stroke:#A50034,opacity:0.8
section P0-P1 Foundation
P0 Planning baseline :done, p0, 2026-07-12, 3d
G0 Alignment baseline :milestone, g0, 2026-07-15, 0d
WP-00 Harness :done, wp00, 2026-07-13, 4d
WP-00.Q1 Library standardization :done, wp00q1, 2026-07-24, 1d
G1 Harness local verification :milestone, g1, 2026-07-16, 0d
section P2 Domain
WP-01 Dossier and state reference :done, wp01, 2026-07-16, 5d
WP-01E Education composition :done, wp01e, 2026-07-20, 1d
G2 Domain offline reference :milestone, g2, 2026-07-21, 0d
section P3-P6 Quality
G3 Intelligence reference :milestone, g3ref, 2026-07-16, 0d
WP-02.Q1 Actual-PPT evidence quality :done, wp02q1, 2026-07-21, 1d
WP-02.Q2 Selectable document reader :done, wp02q2, 2026-07-25, 1d
WP-05.Q1 Qwen proxy capability :done, wp05q1, after wp02q1, 2d
WP-05.Q2 Provider compatibility :done, wp05q2, after wp05q1, 2d
WP-05.Q3 Exact on-prem execution :crit, wp05q3, after wp05q2, 2d
WP-01.R Recovery hardening :done, wp01r, after wp05q2, 6d
WP-03 Gold rubric evaluation :crit, wp03, after wp02q1, 8d
WP-04 Retrieval benchmark :wp04, after wp03, 10d
WP-05 Model and calibration :wp05, after wp04, 10d
G3 Intelligence quality baseline :milestone, g3quality, after wp05, 0d
section P7-P9 Delivery
Typer CLI and local batch Alpha :done, wpcli, after wp01r, 6d
WP-06 API parity and worker :active,crit, wp06, after wpcli, 10d
WP-06.I5a Qwen verification CLI :done, wp06i5a, 2026-07-24, 1d
G4 Interfaces :milestone, g4, after wp06, 0d
P8 Human Review Web :wpweb, after wp06, 12d
G5 Web Review :milestone, g5, after wpweb, 0d
P9 De-identified pilot :wppilot, after wpweb, 15d
G6 Pilot :milestone, g6, after wppilot, 0d
G7 Go-No-Go :milestone, g7, after g6, 0d
G8 Integration :crit, wpint, after g7, 15d
| Phase | 관련 WP/Slice | 현재 상태 | Exit Gate / 남은 핵심 증거 |
|---|---|---|---|
| P0 Planning | baseline 문서·정책 | offline_reference |
G0 Owner/use-case 공식 sign-off 남음 |
| P1 Harness | WP-00, WP-00.Q1 | verified |
G1 local validate/test/eval과 Case/example standardization 통과 |
| P2 Domain | WP-01, WP-01E, R1 | verified_local_alpha |
project/education recovery와 maintenance 완료; producer/distributed transaction 남음 |
| P3 Evidence | WP-02, Q1/Q2 | selectable_reader_contract_verified |
제한형 actual-PPT render/locator/coverage와 native/Docling/injected reader 완료; PDF/DOCX·general VLM 남음 |
| P4 Retrieval | WP-04 | offline_reference |
labeled corpus와 embedding/Qdrant benchmark |
| P5 Evaluation | WP-03, WP-05.Q1/Q2/05 | proxy_registration_verified_exact_pending |
JSON-mode 500 복구, Qwen/GPT-4o proxy registration 완료; exact on-prem/approved gold 남음 |
| P6 Calibration | WP-05/06 일부 | not_started |
panel disagreement와 human agreement report |
| P7 Interfaces | CLI, WP-06 | active |
CLI/batch/resource API/read-replay/local Worker/OIDC signed reference 완료; approved remote identity/upload/distributed worker 남음 |
| P8 Web Review | Web delivery | blocked_policy |
FE/RBAC 선택, API, reviewer E2E와 G5 |
| P9 Pilot | pilot package | not_started |
승인된 비식별 자료, G6~G7 결정 |
| Gate | 현재 판정 | 통과 증거 | 미완료·승인 필요 |
|---|---|---|---|
| G0 Alignment | reference_ready |
제품명·철학·T1·설계 기준 정렬 | Product/Evaluation Owner와 첫 공식 use case |
| G1 Harness | verified_local |
prep 명령, 문서·schema·test/eval 하네스 |
운영 CI 정책은 별도 |
| G2 Domain MVP | verified_local_alpha |
dossier/snapshot/two-gate, Case read projection, project/education journal, checkpoint, maintenance | producer/database/distributed transaction은 운영 hardening으로 유지 |
| G3 Intelligence | reference_verified_quality_pending |
selectable native/Docling/injected reader, restricted render 16/16, gold locator 13/13, lexical/fake dense, structured evaluator, Qwen Plus/GPT-4o proxy registration | exact Qwen registration/completion, PDF/DOCX/general VLM, official semantic gold, Qdrant/calibration |
| G4 Interfaces | in_progress |
Typer CLI, executor/batch, principal-bound resource API, project read/replay, queued 202/local Worker/OpenAPI, local signed OIDC/JWKS validation | approved remote issuer/JWKS/RBAC·assignment, immutable upload, distributed worker/heartbeat와 SSE |
| G5 Web Review | blocked_policy |
UX/architecture 문서만 존재 | FE stack, RBAC, API와 reviewer E2E |
| G6 Pilot | not_started |
없음 | 승인된 비식별 paired dataset |
| G7 Go/No-Go | not_started |
없음 | Sponsor Continue/Narrow/Stop 결정 |
| G8 Integration | not_started |
없음 | 운영 API/SSO/backup/rollback 승인과 인수 |
reference 판정은 다음 Gate를 자동 승인하지 않는다. 특히 G3 reference는 실제 모델·검색 품질이나
공식 rubric 품질을 의미하지 않는다.
| 항목 | 결과 |
|---|---|
| 상태 | verified_restricted_fixture |
| 완료일 | 2026-07-21 |
| Module | M03 contract_verified; M05 quality reference 보강 |
| 핵심 수치 | render 16/16, gold locator 13/13, field 12/12, criterion 13/13, unsupported 0 |
| 품질 경계 | supplied image-only fixture의 provenance/coverage; general VLM·공식 rubric 품질 아님 |
| 상세 근거 | docs/evaluation/wp02-actual-ppt-evidence-quality-report.md |
Exit Evidence:
- 16/16 slide가 local render manifest와 SHA-256을 가진다.
- 13개 reviewed locator가 손실 없이 gold fixture로 round-trip된다.
- 모든 criterion 결과가 해소 가능한 locator 또는
insufficient_evidence를 가진다. - 동일 입력·설정 반복에서 구조적 manifest와 image hash가 재현된다.
- network/GPU/API key 없이 unit/integration/eval이 통과한다.
-
prep validate/test/eval, Ruff, Pyright 결과를 7절과 9절에 기록했다. - Mermaid/SVG/module control board와 요구 추적표를 같은 change set에서 갱신했다.
| 항목 | 내용 |
|---|---|
| 상태 | completed_proxy_exact_pending |
| 목적 | 실제 배포 예정 Qwen3.5-397B-A17B의 endpoint·구조화 출력·vision 계약을 공급자 독립적으로 검증 |
| 대상 Module | model gateway, M05 evaluation, M10 runtime, M11 validation script |
| 입력 | canonical OPENAI_API_KEY, OPENAI_BASE_URL, OPENAI_MODEL; synthetic text/image probe |
| 출력 | secret/raw reasoning 없는 capability report, checkpoint identity 판정, offline contract 회귀 |
| 목표 Gate | G3 Intelligence quality evidence 일부 |
| 외부 호출 | 사용자 승인 범위에서 SkillBoss Qwen3.5 Plus 프록시 소량 호출; exact on-prem endpoint는 미제공 |
Exit Evidence:
- live script가 SkillBoss import 없이 canonical
OPENAI_*세 변수만으로 실행된다. - exact checkpoint와 provider alias를 분리하고 alias를 exact model 검증으로 승격하지 않는다.
- structured text와 synthetic vision 결과를 Pydantic으로 검증한다.
- raw prompt/image/output와 Qwen
reasoning_content를 report/audit에 보존하지 않는다. - SkillBoss 프록시 결과와 exact on-prem 미검증 경계를 개발리포트에 기록한다.
- offline fake endpoint, 전체 test/eval/validate, Ruff, Pyright 회귀가 통과한다.
| 항목 | 내용 |
|---|---|
| 상태 |
verified_local_library_alpha; 103 tests/10 eval groups/validate 0/0/Ruff/Pyright 통과 |
| 목적 | 복구 가능한 project/education 상태변경, 명시적 pipeline run, CLI·batch·clean install을 갖춘 제한형 Library MVP/Alpha 완성 |
| 대상 Module | M00 pipeline, M01 dossier, M02 state, M08 audit/notification, M09 education, M10 runtime, M11 CLI |
| 입력 | 현재 filesystem CAS, atomic file write, durable recording outbox와 failure-injection fixture |
| 출력 | education transaction, local maintenance, checkpoint/cancel executor, CLI/batch, wheel·quickstart와 audit evidence |
| 목표 Gate | G2 Domain hardening 종료 후보와 G4 Interfaces 진입 |
| 외부 호출 | 없음; local filesystem/synthetic failure injection만 사용 |
작업 범위:
- education enrollment/audit와 completion outbox를 append-only journal로 복구한다.
- stale lock, orphan temp와 journal retention을 삭제 없는 quarantine/archive 정책으로 구현한다.
- PipelineContext, checkpoint/resume, cancellation과 retryable/terminal 결과를 고정한다.
- allowlisted pipeline catalog를 사용하는 CLI와 bounded local batch를 구현한다.
- wheel build, clean
.venvinstall과 supplied PPTX quickstart를 검증한다. - Library MVP checkpoint를 audit·문서·diagram과 함께 commit/push한 뒤 G4 첫 slice를 시작한다.
Exit Evidence:
- education failure injection 뒤 enrollment/audit/outbox가 중복 알림 없이 일관되게 복구된다.
- stale lock/orphan/journal은 기본 report-only이며 apply도 삭제 대신 quarantine/archive한다.
- PipelineContext와 run checkpoint가 sync/async, cancel, retryable/terminal 상태를 보존한다.
- CLI와 batch가 Library registry를 직접 호출하고 일부 실패·재실행을 숨기지 않는다.
- wheel을 clean environment에 설치하고 실제 PPTX quickstart를 실행한다.
- 전체 lightweight offline test/eval/validate, Ruff, Pyright와 secret scan이 통과한다.
- 새 위험·결정과 module/diagram/PROJECT_STATE 변경을 기록한다.
R1.1 결과:
-
prepared → applying → reconcile_required/reconciling → committed/blockedappend-only hash chain - create/update dossier CAS와 audit
append_once복구 - HITL report JSON/Markdown와 recorded outbox hash prerequisite
-
project.transaction.reconcile@v1alpha1, working script와 3-boundary synthetic eval - R1.1 완료 범위를 유지하며 R1.2 결과는
docs/evaluation/wp01-r1-2-library-mvp-alpha-report.md와 HIST-2026-07-22-005에 고정했다.
| 항목 | 내용 |
|---|---|
| 상태 | completed_provider_proxy_exact_pending |
| 목적 | SkillBoss Qwen proxy의 full-rubric HTTP 500 원인을 재현·분리하고 공급자 독립 structured-output 계약으로 복구 |
| 대상 Module | model gateway, M05 evaluation, M10 runtime, M11 validation script |
| 입력 | 비식별 supplied fixture, synthetic 최소 재현 요청, SkillBoss qwen3.5-plus proxy |
| 출력 | JSON-mode contract injection, 안전한 wrapped-upstream 진단, 대체 multimodal probe와 개발리포트 |
| 목표 Gate | G3 Intelligence quality evidence 일부 |
| 외부 호출 | 사용자 승인 범위의 소량 live 진단; raw prompt/output/reasoning은 보존하지 않음 |
Exit Evidence:
- SkillBoss CLI
0.1.4와 공식 skill packmain을 갱신하고 설치 해시를 확인한다. - minimal
json_object요청에서JSON단어 누락이 upstream 400이며 SkillBoss가 HTTP 500으로 감싸는 원인임을 재현한다. -
json_objectdialect가 명시적 JSON Schema prompt contract를 자동 포함한다. - wrapped upstream error에서 message/evidence를 노출하지 않고 status/type/code만 진단한다.
- Qwen/GPT-4o route로 structured text/vision과 registration smoke를 검증하고 GLM vision 실패를 기록한다.
- 전체 offline test/eval/validate, Ruff, Pyright 회귀와 단계 리포트를 남긴다.
| 항목 | 내용 |
|---|---|
| 상태 |
verified_local_alpha; Library MVP/Alpha checkpoint a03a633 push 후 2026-07-22 완료 |
| 목적 | committed OpenAPI 3.1과 실제 HTTP handler가 같은 Library registry/run checkpoint를 호출하게 함 |
| 대상 Module | M10 runtime, M12 API/worker; M00/M11 의미 재사용 |
| 입력 | typed pipeline request, run context, bearer auth contract, existing OpenAPI artifact |
| 출력 | minimal FastAPI app factory, pipeline catalog/run/status/cancel endpoint와 contract test |
| 목표 Gate | G4 Interfaces |
| 외부 호출 | 없음; in-process synthetic TestClient만 사용, 배포·계정 생성 없음 |
Exit Evidence:
- FastAPI는 optional
apiextra이고 Core/Domain module이 이를 import하지 않는다. - OpenAPI 3.1 artifact와 실제 route/request/response 의미가 일치한다.
- handler는 script subprocess나 domain 로직 복제 없이
AXCalibregistry/executor를 호출한다. - unknown pipeline/option, auth failure, run conflict와 result status가 구조적으로 구분된다.
- in-process contract/E2E, Ruff, Pyright, validate/test/eval과 문서/diagram drift 검증이 통과한다.
| 항목 | 내용 |
|---|---|
| 상태 |
verified_local_contract; WP-06.I1 commit 67a387e push 이후 2026-07-22 완료 |
| 목적 | project 생성·HITL command를 인증 principal에 bind하고 remote local-path 입력을 제거 |
| 대상 Module | M02 state/approval, M09 workflow, M12 API/worker |
| 입력 | project role/scope mapping, staged artifact reference, registration/completion decision command |
| 출력 | principal-bound project endpoint, staged artifact resolver/hash contract와 authorization test |
| 목표 Gate | G4 Interfaces |
| 외부 호출 | 없음; synthetic/in-process only, 실제 OIDC·계정·배포 없음 |
Exit Evidence:
- project owner/administrator command가 request actor 문자열을 신뢰하지 않고 principal에 bind된다.
- project/organization scope mismatch가 domain mutation 전에 거부된다.
- local filesystem path를 remote request에서 직접 받지 않는 staging/content-hash 계약이 있다.
- target OpenAPI 중 구현한 resource만 implemented artifact로 승격한다.
- threat model, contract/E2E, validate/test/eval와 diagram/module drift 검증이 통과한다.
- education learner/mentor/instructor binding은 후속 WP-06.I2b로 범위와 선행조건이 기록된다.
| 항목 | 내용 |
|---|---|
| 상태 |
verified_local_contract; 2026-07-22 synthetic/in-process 검증 완료 |
| 목적 | education command의 learner/mentor/instructor/administrator를 enrollment/program/project context에 bind |
| 대상 Module | M02 state/approval, M09 education workflow, M12 API/worker |
| 입력 | approved role vocabulary, program/enrollment scope matrix, immutable program version과 current project API principal contract |
| 출력 | principal-bound education typed command endpoint와 authorization regression |
| 목표 Gate | G4 Interfaces |
| 외부 호출 | 없음; synthetic/in-process로 시작, 실제 OIDC·계정·배포 없음 |
Exit Evidence:
- request actor 문자열 없이 verified principal이 education audit actor가 된다.
- learner/mentor/instructor/administrator command별 role·scope matrix가 명시된다.
- program version, enrollment learner, mentor, organization mismatch가 mutation 전에 거부된다.
- project completion 근거 연결은 기존 dossier context/state guard를 우회하지 않는다.
- implemented education resource만 runtime OpenAPI에 추가하고 contract/E2E가 통과한다.
- approved OIDC claim mapping과 실제 계정/배포는 별도 운영 Gate로 유지한다.
| 항목 | 내용 |
|---|---|
| 상태 |
verified_local_contract; 2026-07-22 synthetic/in-process 검증 완료 |
| 목적 | project decision commit 뒤 응답 유실을 안전하게 복구하고 authorized current state를 조회 |
| 대상 Module | M02 state/approval, M10 runtime/idempotency, M12 API/worker |
| 입력 | project principal/org contract, current decision endpoint, local idempotency store |
| 출력 | URI-redacted project GET과 principal-bound registration/completion decision replay |
| 목표 Gate | G4 Interfaces |
| 외부 호출 | 없음; synthetic/in-process only, 실제 OIDC·계정·배포 없음 |
Exit Evidence:
- project owner/admin의 read scope와 organization mismatch가 resource 반환 전에 거부된다.
- response에는 dossier/source/report local URI와 허용되지 않은 원문이 없다.
- 동일 principal/key/stage/revision/command는 commit 뒤 같은 semantic 결과를 replay한다.
- 같은 key의 다른 actor/resource/payload는 mutation 없이 409 conflict다.
- registration/completion 두 endpoint와 authorized GET의 contract/E2E/OpenAPI가 통과한다.
- distributed idempotency와 actual OIDC는 별도 운영 Gate로 유지한다.
| 항목 | 내용 |
|---|---|
| 상태 |
verified_local_contract; 2026-07-22 synthetic/single-host 검증 완료 |
| 목적 | 오래 걸리는 parse/evaluation을 HTTP request와 분리하고 durable local worker가 같은 Library pipeline을 resume |
| 대상 Module | M00 pipeline, M10 runtime/checkpoint, M12 API/worker |
| 입력 | existing PipelineRegistry/ExecutionResult, run ownership, local lease/idempotency contract |
| 출력 | 202 accepted run reference, durable queue/claim, authorized poll과 bounded retry/resume |
| 목표 Gate | G4 Interfaces |
| 외부 호출 | 없음; synthetic/in-process worker only, 실제 broker·배포·OIDC 없음 |
Exit Evidence:
- queued 대상 request는 inline domain 실행 없이 202와 stable run reference를 반환한다.
- local durable queue/claim은 worker 재시작·중복 claim에서도 한 run의 terminal result를 보존한다.
- poll/cancel은 owner/admin/scope와 persisted result hash를 재검증하고 local URI를 노출하지 않는다.
- retryable failure만 같은 idempotency/run context로 resume하며 terminal/cancelled를 재실행하지 않는다.
- script/CLI/API/worker가 같은 request/result/error 의미와 PipelineRegistry/executor를 사용한다.
- 실제 broker, multi-host lease, OIDC/JWKS와 운영 배포는 별도 Gate로 유지한다.
| 항목 | 내용 |
|---|---|
| 상태 |
verified_local_reference; 실제 IdP·assignment·upload 정책은 계속 blocked_policy
|
| 목적 | 승인 전에 결정해야 할 identity/upload 항목을 명시하고, local principal port에 공급자 중립 OIDC/JWKS access-token 검증 reference를 연결 |
| 대상 Module | M02 authority, M10 deployment composition, M12 API/worker |
| 선행결정 | OIDC issuer/audience/claims/revocation, assignment source, object ACL/version/malware/retention Owner |
| 안전 진행범위 | 실제 계정·원격 JWKS·업로드·배포 없이 schema/port, local signed fixture, negative security contract와 threat model 검토 |
| 목표 Gate | G4 Interfaces |
승인되지 않은 issuer, 실제 계정, 운영 object store 또는 사내 데이터를 임의로 만들지 않는다. Owner/ Security 결정 전에는 현재 fail-closed verifier/resolver와 local synthetic contract를 유지한다.
Exit Evidence:
- I4-0 decision packet이 issuer/audience/claim mapping/revocation과 immutable upload의 Owner, 승인값, 검증증거를 구분하고 미정값을 명시한다.
- I4-1 verifier가 asymmetric algorithm allowlist, exact issuer/audience, access-token type, expiry/issued-at/JTI, issuer-bound JWKS와 allowlisted role/scope mapping을 fail closed로 검증한다.
- signature 변조, 만료, 잘못된 issuer/audience/type/algorithm/key/claim/role/scope/org를 모두 거부하고 token/raw claim을 기록하지 않는다.
- Core Library는 JWT/FastAPI 의존성 없이 import되며 identity dependency는 optional extra다.
- 운영 remote discovery/JWKS refresh, 계정 회수, assignment source와 immutable upload는 구현 완료로 표시하지 않는다.
- 후속 품질 slice가 GOAL 추적, 첫 사용 API 단순성, 정상·오류·경계 example matrix와 self-check Exit Evidence를 가진다.
| 항목 | 내용 |
|---|---|
| 상태 | github_live_verified_gitlab_pending |
| 목적 | 메인 저장소의 플랫폼 중립 Wiki 원본을 GitHub/GitLab Wiki에 같은 정보로 배포 |
| 대상 |
wiki/, Wiki validation/export/publish script, GitHub/GitLab CI opt-in template |
| 선행조건 | 실제 Wiki remote는 별도 Git 저장소이며 secret과 on-prem URL은 저장소에 기록하지 않음 |
| Exit Evidence | 필수 페이지·상대 링크·asset·manifest 검증, 두 target export parity, GitHub live push/render |
| 제품 Gate 영향 | 제품 기능 Gate는 승격하지 않으며 WP-06.I4 blocked_policy를 유지 |
이 slice는 문서 전달 하네스다. Wiki가 보인다는 사실을 제품 기능 또는 인증 운영 배포 완료의 증거로 사용하지 않는다. GitHub 최초 Home, live push/render와 repository enable variable은 검증했다. 사내 GitLab remote/runner/credential은 플랫폼 Owner가 승인한 뒤 별도로 opt-in 한다.
| 항목 | 내용 |
|---|---|
| 상태 |
completed_standardized_local_alpha; 2026-07-24 종료 |
| 목적 | 현재까지의 Target/WP/Gate·코드·script를 GOAL에 추적하고 Library 단순성·안전성·유용성을 다양한 example로 자가검증 |
| 대상 |
Case.get_current_status/get_summary read facade, Dossier/pipeline/result/error, scripts/CLI/API/worker, package extra, README/Wiki |
| 입력 |
docs/readiness/library-standardization-and-example-plan.md EX-01~EX-12 |
| 출력 | GOAL trace matrix, script inventory, usability/code/security review, executable example catalog와 defect log |
| 안전 경계 | synthetic/offline 기본; 실제 endpoint/data/계정/upload 없음 |
| 목표 Gate | G2/G4 local standardization evidence; G3 품질·운영 Gate는 자동 승격하지 않음 |
Exit Evidence:
- T1, WP-00
08와 G0G8 각 항목이 code/test/example/pending 중 하나에 연결된다. - 첫 사용자 경로와 expert/deployment 경로가 분리되고 public API의 중복·모호한 명칭을 기록한다.
- 모든 working script가 Library application service를 호출하며 domain 판정/retry를 복제하지 않는다.
- EX-01~EX-12가 정상, 사람 대기, 반려, stale, dependency/validation/retry failure를 예상 상태로 검증한다.
- clean core/cli/api/identity wheel과 Docling extra metadata/격리 정책, 문서 예제의 실행 가능성· secret/경계 표기를 확인한다. Docling parser 자체는 저메모리 원칙에 따라 이번 closeout에서 재실행하지 않았다.
- defect 수정 뒤 전체 split test/eval/static/validate와 Wiki를 갱신한다.
| 항목 | 내용 |
|---|---|
| 상태 |
q2a_completed_q2b_blocked_owner_input; 2026-07-24 Q2a 완료 |
| 목적 | 공식 등록·완료 rubric과 사람 gold label로 report traceability, unsupported claim과 agreement를 평가 |
| 선행조건 | Evaluation Owner가 rubric version/threshold, 승인된 비식별 fixture와 expected label을 제공 |
| 금지 | example-only pass policy 또는 provider proxy 결과를 공식 품질 baseline으로 재사용하지 않음 |
| 출력 | version/hash-bound gold dataset, report benchmark, defect analysis와 G3 quality 판정 |
| 병행 운영 경로 | WP-06.I4.2 remote identity/assignment/upload는 Product/Security/Platform Owner 승인 대기 |
| 목표 Gate | G3 Intelligence quality baseline; 현재 G4 local interface 상태를 자동 승격하지 않음 |
Q2a Exit Evidence:
- 사람이 검토하는 승인 Markdown과 실행형 rubric YAML, gold JSONL, hash-bound manifest가 분리된다.
- draft/offline_reference와 approved benchmark를 구분하고 승인정보·threshold가 없으면 fail closed한다.
- 모든 case가 해당 stage rubric criterion을 정확히 한 번 포함하고 recommendation vocabulary를 지킨다.
- 공식 pass/fail은 manifest에 고정한 숨겨 둔
testsplit만 계산한다. - gold package validator와 synthetic approved-package example이 network/model 없이 실행된다.
- 공식 label을 받기 전에는 quality pass/fail 또는 G3 quality 완료를 주장하지 않는다.
- Docling low-memory preflight와 SkillBoss provider-proxy 제한을 현재 실행 증거로 갱신한다.
Q2b Unblock Input:
- Evaluation Owner published registration/completion policy와 approval reference
- 두 reviewer 독립 vote, adjudication과 stable locator를 가진 비식별 hidden test labels
- 업무 위험에 따라 Owner가 승인한 metric threshold
- exact on-prem Qwen 및 비교 model의 같은 snapshot/policy 기반 EvaluationReport
| 항목 | 내용 |
|---|---|
| 상태 |
verified_local_interface; 2026-07-24 착수·완료 |
| 목적 | 기존 provider-independent capability probe를 사내 운영자가 짧고 일관된 CLI로 실행 |
| 대상 Module | M05 model capability, M11 CLI, Wiki/운영 runbook |
| 입력 | canonical OPENAI_API_KEY, OPENAI_BASE_URL, OPENAI_MODEL과 합성 text/image |
| 출력 |
axcalib verify qwen, secret-free JSON report, 명시적 exit code와 on-prem 실행 절차 |
| 안전 경계 | 실제 사내 문서·SkillBoss·자동 fallback 없음; 정확한 모델·품질 주장은 live 결과 전 금지 |
| 목표 Gate | G4 local command parity와 WP-05 exact on-prem 실행 준비 |
Exit Evidence:
- script와 CLI가 같은 Library capability service를 사용하고 transport/domain 규칙을 복제하지 않는다.
- exact checkpoint, provider alias, text-only와 실패 exit code 의미가 기존 probe와 같다.
- API key, raw prompt/image/output와 hidden reasoning이 CLI/report에 남지 않는다.
- GitHub/GitLab 공통 Wiki에 설치, 환경변수, capability, 등록심의, Docling 분리 실행법을 제공한다.
- targeted/full split test, eval, static, Wiki/ledger validation을 통과한다.
| 항목 | 내용 |
|---|---|
| 상태 |
ready; 사내 exact endpoint와 사용자 실행 필요 |
| 목적 | 실제 Qwen3.5-397B-A17B 배포의 structured text·synthetic vision capability와 등록심의 연결을 검증 |
| 입력 | 사내 endpoint, canonical OPENAI_*, 비식별 합성 probe와 승인된 테스트 PPTX |
| 출력 | secret-free capability JSON, registration summary/report와 notification count |
| 실행 안내 |
wiki/On-Prem-Qwen-Verification.md의 설치→capability→등록심의→선택 Docling 순서 |
| 안전 경계 | 실제 임직원 원문 반입 금지; alias 결과를 exact 증거로 기록하지 않음; transport 성공을 품질 통과로 해석하지 않음 |
| 목표 Gate | G3 exact-model evidence; G3 quality baseline은 WP-03.Q2b Owner gold 뒤 별도 판정 |
Exit Evidence:
-
reported_model == OPENAI_MODEL == Qwen3.5-397B-A17B와exact_model_identity=true를 기록한다. - structured text와 synthetic vision이 통과해
deployment_ready=true가 된다. - 승인된 테스트 PPTX 등록심의가
registration_hitl_pending이며 approval notification 1건을 기록한다. - completion은 승인된 completion template/evidence가 있을 때만 실행하고 등록 당시 목표·KPI와 연결한다.
- 보고서·명령 출력·공유 자료에 API key, 원문 전체, hidden reasoning이 없음을 확인한다.
| 항목 | 내용 |
|---|---|
| 상태 |
verified_local_contract; 2026-07-25 완료 |
| 목적 | Docling 고정 결합을 제거하고 native PPTX, optional Docling, injected document-skill adapter를 같은 Port에서 선택 |
| 대상 Module | M03 ingest/evidence, M10 config, M11 script/CLI와 Wiki |
| 입력 | hash-bound local PPTX, allowlisted reader ID 또는 caller-injected typed reader |
| 출력 | 동일 EvidenceDocument, reader별 ParserRunManifest와 source hash·locator·warning |
| 안전 경계 | native source integrity 검사는 우회 불가; TOML로 arbitrary import/외부전송 활성화 금지 |
| 현재 외부 도구 상태 | SkillBoss reducto/parse는 catalog에 없고 document/retrieve-knowledge는 text embedding이라 direct parser adapter로 사용하지 않음 |
| 목표 Gate | G3 provider-independent document evidence reference |
Exit Evidence:
- source hash·PPTX package safety와 verified sidecar는 선택 reader보다 먼저 검사한다.
-
native,docling, caller-injected reader가 하나의 typed Port/result와 merge contract를 사용한다. - 외부 reader는 constructor opt-in 없이는 TOML/요청만으로 활성화되지 않는다.
- script/config는 allowlisted reader ID를 사용하며 legacy
--docling경로를 안전하게 호환한다. - fake local/remote reader, source hash mismatch, duplicate page, unknown engine과 config secret 회귀를 통과한다.
- 요구·ADR·diagram/module board·Wiki·원장과 단계 종료 리포트를 함께 갱신한다.
calendar 일정은 담당자·공수·승인일이 정해진 뒤 baseline으로 고정한다. 그 전에는 아래 dependency 순서와 Exit Evidence를 일정 기준으로 사용한다.
| 순서 | Phase / WP | Slice | 상태 | 선행조건 | 실제 착수 | 목표/완료 | 다음 Gate |
|---|---|---|---|---|---|---|---|
| 1 | P3 / WP-02 | Q1 Actual-PPT evidence quality | verified |
Docling contract, supplied fixture | 2026-07-21 | 2026-07-21 | G3 quality evidence 일부 |
| 2 | P5 / WP-05 | Q1 Qwen provider-proxy capability | partial_verified |
Q1 evidence, user-approved SkillBoss access | 2026-07-21 | 2026-07-21 | G3 evidence 일부 |
| 3 | P5 / WP-05 | Q2 SkillBoss HTTP500 recovery | verified_proxy |
Q1 proxy evidence, user-approved live diagnostics | 2026-07-22 | 2026-07-22 | G3 evidence 일부 |
| 4 | P2 / WP-01 | R1.1/R1.2 Library MVP recovery | verified_local_alpha |
Q2 provider compatibility, filesystem boundary | 2026-07-22 | 2026-07-22 | G2 local Alpha |
| 5 | P5 / WP-03 | Q2a Evaluation Owner input contract | verified_local_contract |
Q1 gold evidence와 현재 policy schema | 2026-07-24 | 2026-07-24 | G3 quality 준비 |
| 6 | P7 / CLI | project/education/runtime pipeline parity | verified_alpha |
WP-01.R, stable pipeline result | 2026-07-22 | 2026-07-22 | G4 evidence 일부 |
| 7 | P4 / WP-04 | embedding/Qdrant/rerank benchmark | blocked_policy |
approved corpus와 labels | TBD | TBD | G3 quality |
| 8 | P5-P6 / WP-05 | exact on-prem Qwen/panel/calibration | blocked_endpoint_policy |
exact endpoint·gold label 승인 | TBD | TBD | G3 quality |
| 9 | P7 / WP-06 | minimal API/OpenAPI parity | verified_local_alpha |
CLI/batch Alpha와 auth contract | 2026-07-22 | 2026-07-22 | G4 evidence 일부 |
| 10 | P7 / WP-06 | principal-bound project command/artifact contract | verified_local_contract |
runtime API Alpha, role/scope policy | 2026-07-22 | 2026-07-22 | G4 evidence 일부 |
| 11 | P7 / WP-06 | education principal binding contract | verified_local_contract |
project API contract, education domain reference | 2026-07-22 | 2026-07-22 | G4 evidence 일부 |
| 12 | P7 / WP-06 | project read and decision replay contract | verified_local_contract |
project resource auth, local idempotency | 2026-07-22 | 2026-07-22 | G4 evidence 일부 |
| 13 | P7 / WP-06 | durable local 202 worker contract | verified_local_contract |
runtime checkpoint, resource authorization | 2026-07-22 | 2026-07-22 | G4 evidence 일부 |
| 14 | P7 / WP-06 | identity/upload decision packet + local OIDC/JWKS contract | verified_local_reference |
실제 운영값은 Product/Security/Platform Owner 결정 | 2026-07-24 | 2026-07-24 | G4 evidence 일부 |
| 15 | P8-P9 | Web/Pilot | blocked_policy |
G4, FE/RBAC/data 승인 | TBD | TBD | G5-G7 |
| 16 | P0 / WP-00.D2 | portable GitHub/GitLab Wiki publication harness | github_live_verified_gitlab_pending |
platform-neutral docs source | 2026-07-23 | 2026-07-23 | documentation control |
| 17 | P0/P7 / WP-00.Q1 | Case read facade, GOAL alignment, Library/script usability와 EX-01~12 self-check | completed_standardized_local_alpha |
I4 local checkpoint, current docs/tests | 2026-07-24 | 2026-07-24 | G2/G4 local standardization |
| 18 | P5 / WP-03.Q2b | Owner-approved rubric/report gold benchmark | blocked_policy |
published rubric, threshold, hidden test gold와 exact-model reports | TBD | TBD | G3 quality |
| 19 | P7 / WP-06.I5a | On-prem Qwen verification CLI and runbook | verified_local_interface |
existing Qwen capability service와 local CLI Alpha | 2026-07-24 | 2026-07-24 | G4 command parity |
| 20 | P5 / WP-05.Q3 | Exact on-prem Qwen execution | ready |
exact endpoint, canonical env와 승인된 테스트 PPTX | TBD | TBD | G3 exact-model evidence |
| 21 | P3 / WP-02.Q2 | Selectable document reader Port and adapters | verified_local_contract |
native PPTX baseline, optional Docling contract | 2026-07-25 | 2026-07-25 | G3 document evidence reference |
| 날짜 | 범위 | 명령/증거 | 결과 | 품질 주장 경계 |
|---|---|---|---|---|
| 2026-07-25 | WP-02.Q2 selectable document reader | targeted, split full test/eval, schema, Ruff/Pyright, Wiki/workspace validate, native EX-15 | targeted 25; full 200(139/40/21), integration 9/25/6, eval 10, schema/Wiki/validate pass, Pyright 0/0 | local PPTX Port/manifest와 HITL report contract; current-run Docling, PDF/DOCX, external parser, semantic 품질 아님 |
| 2026-07-24 | WP-06.I5a GitHub main + Wiki delivery | main/Wiki remote SHA, Actions run/jobs/annotations, public page GET | main 65aeab4, run 30067692706 jobs 2/2 success, annotations 0, Wiki 8e76cd8, Qwen page HTTP 200 |
GitHub delivery만 검증; 사내 GitLab runner/credential/live publish와 exact Qwen 미검증 |
| 2026-07-24 | WP-06.I5a Qwen verification CLI | targeted/full split, clean Rich 15 wheel CLI, eval, Ruff/Pyright, Wiki/ledger validation | targeted 22; full 192(132/39/21), integration 9/24/6, eval 10, clean CLI/help/missing-env exit 2, Ruff, Pyright/validate 0/0 | fake exact endpoint와 local interface만; live exact Qwen/심사 품질 아님 |
| 2026-07-24 | WP-03.Q2a Owner gold input contract | draft validator, synthetic approved loader/test split, split full tests, offline eval, Ruff/Pyright/schema/validate, SVG render review | 16 targeted; full 189(131/37/21), integration 9/22/6, eval 10, Ruff, Pyright 0/0, validate 0/0 | 입력·metric 계산 local contract; 공식 rubric/gold/exact-model 품질 아님 |
| 2026-07-24 | Docling/SkillBoss 현재 진단 |
prep.ps1 docling resource preflight; SkillBoss dynamic catalog와 합성 Qwen3.5 Plus JSON |
Docling 1,368MB<2,048MB BLOCKED_RESOURCE; Plus live smoke 성공 |
현재 Docling parse와 exact 397B 미실행; provider proxy connectivity만 |
| 2026-07-24 | WP-00.Q1 Library standardization closeout | Case/examples/catalog, split test/eval, clean wheel, Ruff/Pyright/schema/Wiki/validate | 173 tests(118/34/21), integration shards 9/19/6, EX node 16, eval 10, Pyright 0/0, validate 0/0 | local standardized Alpha; Docling parser/live model/official rubric·retrieval·운영 품질 미실행 |
| 2026-07-24 | I4 GitHub main + Wiki delivery | main/Wiki remote SHA, Actions run 30050877129 jobs/check annotations, public page GET | main 7052530, run/jobs 2/2 success, annotations 0/0, Wiki 49b1fbc, pages 4/4 HTTP 200 |
GitHub delivery만 검증; 사내 GitLab runner/credential/live publish 미검증 |
| 2026-07-24 | WP-06.I4.0-1 identity decision + local OIDC/JWKS reference | identity targeted, split full test/eval, Ruff/Pyright/validate, clean core/identity wheel, Wiki contract, SVG visual review | identity 24, full 160 (108/31/21), 10 eval groups, Ruff, new format 3/3, Pyright 0/0, validate 0/0, Wiki targeted 9 + CI 1, clean wheels | local synthetic signed token/key만 검증; 실제 IdP·rotation·revocation·assignment·upload·deployment 미검증 |
| 2026-07-23 | WP-00.D2 portable dual-Wiki harness | Wiki validate/export/parity, local bare publish, split full test/eval, Ruff/Pyright/validate, CI YAML parse | Wiki targeted 6/6, parity 1/1, full 136 (86/31/19), 10 eval groups, Ruff, Pyright 0/0, validate 0/0 | local source/export only; GitHub initial Home와 GitLab runner/credential/live push 미검증 |
| 2026-07-23 | WP-00.D2 GitHub main deployment |
git push origin main, remote SHA 확인, GitHub Actions run 30014678127 |
b2c6e48 local/remote 일치, Wiki validate job success |
Wiki publish job은 enable variable 부재로 skipped; 최초 Home 미생성으로 Wiki remote는 아직 없음 |
| 2026-07-23 | WP-00.D2 GitHub Wiki live publication | canonical publisher dry-run→push, remote SHA, public HTTP render, Actions variable API | Wiki f384648 local/remote 일치, pages 4/4와 assets 3/3 HTTP 200, publish variable true
|
GitHub live delivery만 검증; 사내 GitLab runner/credential/render는 미검증 |
| 2026-07-23 | WP-00.D2 GitHub automatic publication | Actions run 30016911593 job API와 Wiki remote | validate/publish jobs success, Wiki 9523ce2로 갱신 |
run 상단 상태 반영 지연; Node 20 deprecation annotation을 v6 action으로 교정 중 |
| 2026-07-23 | WP-00.D2 Node 24 workflow closeout | Actions run 30017233639, check-run annotations, Wiki remote | run success, jobs 2/2 success, annotations 0/0, Wiki d8bf053
|
GitHub 자동 문서 전달 검증; 사내 GitLab 증거로 확대하지 않음 |
| 2026-07-22 | WP-06.I3 durable local Worker | split full test/eval, API+Worker contract, Ruff/Pyright/validate, clean API wheel, SVG/PNG audit | 130 passed (83/28/19), combined 27/27, 10 eval groups, Ruff, Pyright 0/0, validate 0/0, OpenAPI 17 paths | single-host filesystem Alpha; OIDC/upload/heartbeat/distributed broker 미포함 |
| 2026-07-22 | WP-06.I2c project safe read/decision replay | project/runtime/education API contract, full test/eval, Ruff, Pyright, validate, clean API wheel, SVG/PNG visual audit | project API 6/6, combined API 18/18, full 121 passed, 10 eval groups, Ruff check, changed format 7/7, Pyright 0/0, validate 0/0, OpenAPI 17 paths | local response-loss contract; commit-record crash window, distributed idempotency/OIDC 미포함 |
| 2026-07-22 | WP-06.I2b principal-bound education API | education/runtime/project API contract, full test/eval, Ruff, Pyright, validate, clean API wheel, SVG/PNG visual audit | education API 5/5, combined API 17/17, full 120 passed, 10 eval groups, Ruff check, Pyright 0/0, validate 0/0, OpenAPI 16 paths | in-process resource scope contract; actual OIDC/assignment source/server 미포함 |
| 2026-07-22 | WP-06.I2a principal-bound project API | project/runtime API contract, full test/eval, Ruff, Pyright, validate, SVG/PNG visual audit | API 12/12, full 115 passed, 10 eval groups, Ruff check, Pyright 0/0, validate 0/0 | in-process project command/staging port; actual OIDC/upload/server 미포함 |
| 2026-07-22 | WP-06.I1 runtime API Alpha | contract pytest, clean core/API wheel, full test/eval, Ruff/Pyright/validate | API 7/7, full 110 passed, 10 eval groups, 0/0 static/validate | in-process sync API; OIDC/RBAC/upload/worker/server 미포함 |
| 2026-07-22 | WP-01.R1.2 Library MVP/Alpha | lightweight prep test/eval, Ruff, low-memory Pyright, validate, clean wheel/CLI/actual-PPTX |
103 passed, 10 eval groups, Alpha 8/8, Ruff, Pyright 0/0, validate 0/0 | single-host offline Alpha; Docling current-turn rerun·API/RBAC/운영 미포함 |
| 2026-07-22 | WP-01.R1.1 project transaction recovery | 3-boundary crash eval, full test/eval, Ruff/Pyright | 88 passed, 9 eval groups, recovery 3/3, Ruff passed, Pyright 0/0 | local project dossier/audit only; broader recovery pending |
| 2026-07-22 | WP-05.Q2 단계 종료 offline 회귀 |
prep test, prep eval, Ruff, Pyright |
79 passed, 8 eval groups, Ruff passed, Pyright 0/0 | fake/offline contract; live quality 아님 |
| 2026-07-22 | Qwen Plus generic proxy probe | structured text + synthetic vision | passed, 12,415/10,415ms; deployment false | alias capability만 |
| 2026-07-22 | Qwen Plus registration recovery | supplied fixture, JSON-object schema contract | 7 criteria, model 77,724ms, notification 1, HITL pending | exact Qwen/공식 심의 아님 |
| 2026-07-22 | GPT-4o alternate comparison | text/vision + supplied registration | 2,650/2,460ms; registration model 7,121ms, HITL pending | alternate provider proxy만 |
| 2026-07-22 | GLM 4.5V comparison | generic proxy probe | text 5,688ms passed; vision gateway error | multimodal fallback으로 미승격 |
| 2026-07-22 | WP-05.Q2 최소 재현 | 248-byte synthetic json_object without JSON keyword |
upstream 400 invalid_parameter_error가 SkillBoss HTTP 500으로 wrapping됨 |
provider proxy 오류 매핑 원인만 확인 |
| 2026-07-22 | WP-05.Q2 대조군 | simple, 1 criterion, 7 criteria/13 slides, actual-content ACK | 모두 HTTP 200; 명시적 JSON을 넣은 actual 1 criterion도 HTTP 200 |
output schema 품질은 별도 |
| 2026-07-21 | WP-05.Q1 SkillBoss proxy capability | canonical env live probe | structured text/vision passed; response qwen3.5-plus; exact identity false |
provider proxy transport/capability만 |
| 2026-07-21 | supplied fixture Qwen proxy registration |
json_schema, json_object, output 8192 세 시도 |
모두 HTTP 500, HITL/final 전이 없음 | SkillBoss full-rubric 실패; exact on-prem 결과 아님 |
| 2026-07-21 | WP-05.Q1 단계 종료 offline 회귀 |
prep test, prep eval
|
76 passed, 8 eval groups passed | fake exact endpoint와 contract; live model 품질 아님 |
| 2026-07-21 | WP-05.Q1 정적·workspace contract |
prep validate, Ruff, Pyright |
0 errors/0 warnings | local schema·문서·typing 계약 |
| 2026-07-21 | WP-02.Q1 actual-PPT render/gold | evals/evidence_quality.py |
16/16 render, locator 13/13, field 12/12, criterion 13/13, unsupported 0 | 해당 image-only fixture provenance/coverage |
| 2026-07-21 | WP-02.Q1 optional Docling 결합 | evals/evidence_quality.py --with-docling |
passed; Docling 2.113.0, 16 page/0 text | VLM/semantic 품질 아님 |
| 2026-07-21 | 단계 종료 전체 offline 회귀 |
prep.ps1 test, prep.ps1 eval
|
66 passed, 7 eval groups passed | live model/Vector DB/공식 rubric 품질 아님 |
| 2026-07-21 | 정적·workspace contract |
prep validate, Ruff, Pyright, git diff --check
|
0 errors/0 warnings; diff whitespace error 없음 | CRLF 안내만 발생 |
| 2026-07-21 | 프로젝트 .venv Docling |
uv sync --locked --extra docling --dev |
Docling 2.113.0 설치 | 환경 설치 확인 |
| 2026-07-21 | 실제 PPTX Docling 계약 | pytest tests/contract/test_docling_adapter.py |
1 passed; 16 slides, 0 text | 시각 의미 이해 아님 |
| 2026-07-21 | 전체 offline 회귀 | ledger contract를 포함한 prep.ps1 test
|
60 passed | live model/Vector DB 품질 아님 |
| 2026-07-21 | 전체 offline eval | prep.ps1 eval |
6 eval groups passed | synthetic/reference contract만 주장 |
| 2026-07-21 | workspace contract | prep.ps1 validate |
0 errors, 0 warnings | local 문서·schema·보안 계약 |
| 2026-07-20 | education lifecycle eval | prep.ps1 eval |
project/program HITL와 synthetic quality contract 통과 | 공식 교육 인증 아님 |
- 제공 PPTX는 16장 image-only다. Docling은 구조를 성공적으로 읽지만 text는 0자이므로 sidecar 또는 향후 승인된 VLM 근거 없이는 시각 의미를 추론하지 않는다. 제한형 renderer는 pixel provenance를 고정할 뿐 semantic extraction을 수행하지 않는다.
- Windows 전역 Pytest 임시 link 정리의
WinError 5가 반복됐다. assertion 실패와 분리했고prep test가 실행별output/pytest-runs/run-{pid}를 쓰도록 보강했다. 이어 atomic replace에서 일시적 lock 1건이 재현돼 bounded retry를 추가한 뒤 76 tests가 통과했다. - 2026-07-20 교육 composition과 R1.1 project recovery는 commit
ebd74ed, R1.2 Library Alpha는a03a633, WP-06.I2b/I2c는e74ea69/c089d6d, WP-06.I3는70f8404, WP-00.D2 portable Wiki harness는b2c6e48까지origin/main에 반영됐다. - SkillBoss catalog에는 exact
Qwen3.5-397B-A17B가 없고qwen3.5-plus만 있다. 기존 full registration HTTP 500의 직접 원인은json_object메시지에 literalJSON이 없던 AXCalib 요청과 upstream 400을 500으로 감싼 proxy mapping 조합으로 확인됐다. exact on-prem 검증은 여전히 필수다. - Product/Evaluation/Course Owner, 실제 rubric·threshold, actual completion template, labeled corpus, on-prem endpoint, program rollout/credential 정책이 아직 확정되지 않았다.
- 실제 데이터 반입, 추가 live model, Vector DB 운영, API/Web 배포, 계정·권한 생성은 승인 전 진행하지 않는다.
- Gantt 미래 bar는 calendar 약속이 아니다. Owner, 담당자, 공수와 목표일이 정해지면 변경 이력과 함께 calendar baseline을 추가한다.
- maintenance test가 traceback 없이 종료된 직접 원인은 Windows의
os.kill(pid, 0)self-termination 이었다. read-only Win32 process query로 교체해 회귀를 통과했다. 당시 가용 메모리 408~833 MiB는 2차 위험이므로 Docling contract를 기본 test에서 분리하고 검증을 순차 실행한다. - WP-06.I1 첫
uv sync는 이전 불완전 설치의 read-only dist-info 때문에 access denied가 났다. 실행 중 Python process가 없음을 확인하고.venv내부 metadata attribute만 복구한 뒤 sync와RECORD/import를 재검증했다. 소스·dossier·실제 데이터는 변경하지 않았다. - 첫 G4 전체 test의 2개 실패는 아직 생성 전이던 개발리포트 link validation뿐이었고 나머지 108개는 통과했다. 리포트를 추가한 최종 재실행은 110/110 통과했다. Docling/live model/socket server는 이번 slice에서 호출하지 않았다.
- I2c의 repository-wide
ruff format --check .은 기존 52개 파일의 format drift를 검출해 실패했다. 이번 변경 Python 7개는 별도 format check를 통과했고ruff check .도 통과했다. 범위 밖 52개를 일괄 재작성하지 않았으며 별도 formatting cleanup WP가 필요하다. - I3 첫 monolithic
prep test는 assertion 실패가 아니라 도구의 60초 timeout으로 외부 종료됐고, 닫힌 stdout flush에서OSError 22가 뒤따랐다. unit/integration/contract를 독립 pytest process로 분리하고 group 선택을 추가했다. 각 group 83/28/19와 aggregate 130이 통과해 중단 시 해당 group만 재개할 수 있다. - GitHub Owner가 최초 Home을 생성한 뒤 canonical publisher가 17개 관리 파일을 Wiki
f384648로 push했다. 공개 Home/Getting Started/Development Ledger/API page와 3개 image asset은 HTTP 200으로 확인했고 repository variable도 활성화했다. Chrome connector metadata 오류는 bootstrap 자동화만 막았으며 실제 Git push/render에는 영향이 없었다. 사내 GitLab URL/runner/credential은 여전히 미제공 상태다. - I4 전체
uv sync --all-extras --dev는 기존 editable dist-info 제거 중 access denied로 실패했다. lockfile 갱신 뒤 identity dependency만 현재.venv에 설치해 검증했고, clean core/identity wheel 환경으로 의존성 격리를 별도 재확인했다. repository-wide format check는 일괄 정리하지 않은 기존 51개 파일의 drift를 보고하지만 새 Python 3개는 통과했다. direct Pyright가 처음 base Conda path를 읽은 문제는pyproject.toml에 workspace.venv를 고정해 0/0으로 복구했다. 실제 issuer/JWKS/계정/token/upload 또는 원문 데이터는 사용하지 않았다. - Q1의 첫 monolithic integration 실행은 assertion 실패가 아니라 도구 64초 timeout으로 종료됐고
닫힌 stdout에서
OSError 22가 발생했다. 같은 명령을 반복하지 않고integration-core/eval/opsshard를 하네스에 추가해 9/19/6을 각각 통과했다. - incomplete editable install 상태에서 actual-PPT 예제와 transaction working script가
ModuleNotFoundError를 냈다. checkout script의srcbootstrap을 통일하고 모든 pipeline script의 import 순서를 회귀했다. 최소 quickstart의 local absolute URI도report_id와 safe Case view로 교체했다. - Wiki integration은 Windows transient lock으로 atomic replace가 1회 실패했다. write/copy에 짧은 bounded retry를 추가하고 synthetic lock unit과 실제 local bare-Wiki integration을 재실행해 통과했다. clean interface wheel 첫 진단의 잘못된 import/CLI option과 조기 종료 pipe는 명령 작성 오류로 분리해 올바른 공개 경로·option으로 재검증했다.
- Q2a Docling 재실행은 설치 오류가 아니라 가용 물리 메모리 1,368MB가 안전 기준 2,048MB보다
낮아 parser import 전에
BLOCKED_RESOURCE로 종료됐다. 이전 supplied image-only PPTX 계약은 Docling 2.113.0, 16 page/0 text이며, 현재 parser run은 메모리 확보 뒤 격리 명령으로 남는다. - SkillBoss authentication/catalog/Qwen3.5 Plus synthetic JSON 호출은 성공했다. 설치 npm CLI와
public latest는 0.1.4인데 표시 version은 source hard-code 0.1.0이고, server update metadata는
current unknown/latest 1.1.0 및 공개 저장소에 없는 updater를 지시한다.
account도 HTTP 404다. 이는 upstream 배포 결함이며 제품/on-prem은 계속 canonicalOPENAI_*계약만 사용한다. - Q2a는 hidden test split guard까지 local contract로 종료했다. 실제 threshold와 정답은 구현자가
만들지 않으므로 Q2b/G3 quality는 Evaluation Owner 승인자료와 exact-model report 전까지
blocked_policy다. - WP-06.I5a 검증 중 기존
.venv의 120개 read-onlydist-info, 일부 누락된RECORD와 package directory 때문에uv sync가 access denied로 실패했다. 사용자 환경을 광범위하게 다시 쓰지 않고 새 clean venv와 wheel에서 CLI를 검증했다. 첫 clean run은 Rich 15의Console.print(stderr=...)비호환으로 설정 오류가 exit 1 traceback을 냈고,typer.echo(..., err=True)로 교정해 exit 2와 무-traceback 계약을 확인했다. 제품 데이터와 실제 원문은 사용하지 않았다. - WP-02.Q2 첫 integration-core는 기능 실패가 아니라 SVG의 옛 필수 token과 새 integration file의
shard 누락 2건을 검출했다. 하네스를 새 구조도/테스트 목록과 맞춘 뒤 9/25/6 shard가 통과했다.
첫 contract는 조기 source-integrity error가 기존 public
ProjectSourceIntegrityError의미를 바꾼 호환성 문제 1건을 검출했고, typed ingest error를 domain 경계에서 번역해 복구했다. SkillBoss에는 file/PPTX parser가 없어 외부 원문을 보내지 않았고 current-run Docling도 별도 저메모리 계약에 따라 실행하지 않았다.
- Phase / WP / Gate: P0 Planning / baseline specification / G0 preparation
- 상태:
completed_reference - 작업: AXCalib 명칭, library-first 원칙, dossier와 두 단계 심의, on-prem/Vector DB 확장계획을 WORK_SPEC·GOAL·DESIGN에 고정했다.
- 검증: 초기 문서·링크·용어 baseline 확인.
- 특이사항: 이 시점은 planning 중심이며 실제 제품 구현 완료가 아니었다.
- 관련 근거: Git commit
9207047.
- Phase / WP / Gate: P1 Harness / WP-00 / G1
- 상태:
completed_local - 작업:
prep.ps1, src/apps/docs/fixtures/tests/evals 구조, workflow diagram, module control board와 architecture deck을 구축했다. - 검증: pre-development validate/test/eval과 문서 링크·시각자료 검사.
- 특이사항: 실제 rubric·model·retrieval 품질은 NO-GO로 유지했다.
- 관련 근거: Git commit
4193727.
- Phase / WP / Gate: P2-P5 reference / WP-01~05 일부 / G2-G3 reference
- 상태:
reference_verified - 작업: supplied PPTX two-gate, hash-bound policy, optional Docling manifest, lexical retrieval, structured evaluator/report와 관리자 HITL을 연결했다.
- 검증: local/synthetic test/eval과 승인된 비식별 live registration smoke.
- 특이사항: G3 reference이며 실제 Qwen/embedding/Qdrant/gold 품질 완료가 아니다.
- 관련 근거: Git commits
567588c,87636c3,32e0bc5와 G3 개발리포트.
- Phase / WP / Gate: P2 Domain / WP-01, WP-01E / G2 hardening reference
- 상태:
offline_reference_verified - 작업: immutable EducationProgram, revisioned Enrollment, project milestone roll-up, program completion HITL, dossier schema migration, filesystem CAS, idempotency와 durable recording outbox를 구현했다.
- 검증: 당시 58 passed, optional Docling 1 skipped; education/project/retrieval/model config eval 통과.
- 특이사항: 변경은 현재 working tree에 있으며 운영 transaction/RBAC/credential은 미완료다.
- 관련 근거: 교육/WP-01 개발리포트.
- Phase / WP / Gate: P3 preparation / WP-02 prerequisite / G3 quality preparation
- 상태:
verified_local_environment - 작업: project
.venv에 locked Docling optional extra를 설치하고 supplied PPTX adapter 계약을 실제로 실행했다. - 검증: Docling 2.113.0, contract 1 passed, 전체 59 passed, validate 0 errors/0 warnings.
- 특이사항: PPTX 16장은 정상 인식됐으나 image-only여서 추출 text는 0자다. 전역 temp cleanup
권한 오류는 unique workspace
--basetemp재실행으로 검증 경로를 분리했다. - 관련 근거:
tests/contract/test_docling_adapter.py.
- Phase / WP / Gate: P1 Harness governance / WP-00 ledger control / all Gates
- 상태:
completed - 작업:
PROJECT_STATE.md를 P/WP/G Gantt, Active Slice, 일정 Queue, 검증, 특이사항과 append-only 이력을 가진 단일 Project Execution Ledger로 승격했다. - 변경 파일:
PROJECT_STATE.md,AGENTS.md,README.md,WORK_SPEC.md,GOAL.md,DESIGN.md,DECISIONS.md, architecture README/blueprint/module plan,harness/prep.py, harness contract test. - 검증:
prep validate0 errors/0 warnings,prep test60 passed, 6 eval groups passed, Ruff all checks passed, Pyright 0 errors/0 warnings. - 특이사항: calendar 일정은 아직 약속하지 않고 dependency-only로 유지한다.
- 미검증: Mermaid Gantt의 별도 SVG/browser render는 이번 change에서 실행하지 않았다.
- 다음 작업: Active Slice
WP-02.Q1 actual-ppt-evidence-quality-baseline. - 관련 근거: D-030과 작업 하네스 원장 validation contract.
- Phase / WP / Gate: P3 Evidence / WP-02.Q1 / G3 Intelligence quality preparation
- 상태:
active - 작업: Actual-PPT Evidence Quality Baseline 구현을 시작했다. 16장 중 13장은 전체 화면 embedded PNG, 3장은 blank slide임을 확인해 제한형 deterministic renderer와 gold locator/quality eval을 첫 slice로 고정했다.
- 변경 파일:
PROJECT_STATE.mdActive Slice와 실제 착수일. - 검증: source SHA-256과 sidecar 13개 annotation, PowerPoint 설치·LibreOffice 미설치, 13 embedded image/3 blank 구조 확인.
- 특이사항: Microsoft PowerPoint COM은 존재하지만 cross-platform Core 회귀에 사용하지 않는다.
- 미검증: renderer·gold fixture·품질지표 구현과 전체 회귀는 진행 중이다.
- 다음 작업: M03 embedded-image renderer port와 manifest schema 구현.
- 관련 근거: Active Slice Exit Evidence.
- Phase / WP / Gate: P3 Evidence / WP-02.Q1 / G3 Intelligence quality evidence portion
- 상태:
completed_restricted_fixture - 작업: restricted
SlideRenderer, deterministic 16-slide manifest, 13 reviewed locator gold fixture, evidence-quality report와 optional Docling 결합 eval을 구현했다. M03은 supplied image-only fixture 범위에서contract_verified로 승격했다. - 변경 파일:
src/axcalib/ingest/slide_render.py,evaluation/evidence_quality.py, ingest/evaluation exports, gold dataset, quality eval, 2개 unit test, harness, ADR-015, WORK_SPEC/GOAL/DESIGN/README, workflow blueprint, module board, SVG, 개발리포트와 이 원장. - 검증:
prep validate0 errors/0 warnings,prep test66 passed,prep eval7 groups passed, optional Docling quality eval passed(16 page/0 text), Ruff all checks passed, Pyright 0 errors/0 warnings,git diff --checkwhitespace error 없음. - 특이사항: 첫 전체 test에서 원장 테스트가 과거 history ID를 하드코딩해 1건 실패했다. 현재 ID를 regex로 찾아 변조하도록 수정한 뒤 66/66을 재실행했다. external model, GPU, embedding/Vector DB는 사용하지 않았다.
- 미검증: general PowerPoint rendering fidelity, OCR/VLM semantic accuracy, 다른 actual template, 공식 rubric/label과 운영 parser sandbox.
- 다음 작업:
WP-01.R1 transaction-journal-reconciliation을 ready 상태로 전환한다. - 관련 근거: WP-02.Q1 개발·코드리뷰 리포트, ADR-015, M03 Module Control Board.
- Phase / WP / Gate: P5 Evaluation / WP-05.Q1 / G3 Intelligence quality preparation
- 상태:
active - 작업: 실제 배포 예정
Qwen3.5-397B-A17B를 위한 provider-independent OpenAI-compatible capability validation slice를 시작했다. SkillBoss 동적 카탈로그에서 exact ID는 찾지 못했고bailian/qwen3.5-plus만 별도 provider alias로 확인했다. - 변경 파일:
PROJECT_STATE.mdActive Slice, dependency Gantt와 작업 Queue 우선순위. - 검증: SkillBoss
--no-fallback고정 JSON smoke 1회 성공; 응답 model은qwen3.5-plus였으며 exact 397B-A17B checkpoint identity는 확인되지 않았다. - 특이사항: SkillBoss는 개인환경의 사전 검증 경로일 뿐 제품·on-prem dependency가 아니다.
응답의
reasoning_content는 숨은 추론이므로 AXCalib 산출물에 보존하지 않는다. - 미검증: exact on-prem endpoint, structured schema dialect, vision, latency·quality benchmark.
- 다음 작업: canonical
OPENAI_API_KEY/OPENAI_BASE_URL/OPENAI_MODELlive probe와 offline fake-endpoint 회귀를 구현하고 SkillBoss proxy로 text/vision 계약을 실행한다. - 관련 근거: Active Slice Exit Evidence와 후속 Qwen capability validation report.
- Phase / WP / Gate: P5 Evaluation / WP-05.Q1 / G3 Intelligence quality evidence portion
- 상태:
partial_proxy_verified_exact_pending - 작업: provider-independent Qwen capability module과 canonical-env live script를 구현했다.
provider proxy/deployment scope, response model identity, structured text/vision, explicit
json_schema/json_object, output token limit와 hidden-reasoning discard를 계약으로 고정했다. - 변경 파일:
src/axcalib/models/capability.py,models/openai_compatible.py,evaluation/model.py,schemas/domain.py, runtime config/schema와 expert TOML, Qwen script/eval, unit/integration tests, ADR-018, 개발리포트, WORK_SPEC/GOAL/DESIGN/README, workflow Mermaid/SVG, module board, decision/risk, bounded atomic-replace retry와 이 원장. - 검증: SkillBoss
qwen3.5-plusproxy structured text/vision passed(20,628/9,436 ms), exact identity false/deployment-ready false. fake exact endpoint E2E와 전체prep test76 passed,prep eval8 groups passed,prep validate0 errors/0 warnings, Ruff passed, Pyright 0 errors/0 warnings. - 특이사항: supplied fixture의 full registration payload는
json_schema,json_object, output limit 8192에서 모두 SkillBoss HTTP 500으로 fail-closed됐다. request는 5.3KB 이하였고 짧은 한국어 request는 성공했으므로 원인을 추측해 성공 처리하지 않았다. model failure safe audit event 부재를 R-032로 등록했다. 반복된 Windows global pytest temp 권한 오류는prep testworkspace basetemp로 하네스에서 제거했다. - 미검증: exact on-prem
Qwen3.5-397B-A17B, full registration/completion rubric, slide pixel을 쓰는 VLM 평가, task quality·hallucination·agreement·latency/cost benchmark와 serving fingerprint. - 다음 작업: current Active Slice
WP-01.R1 transaction-journal-reconciliation; exact endpoint 제공 시 WP-05 deployment probe와 full two-gate quality를 재개한다. - 관련 근거: Qwen3.5 capability 검증 리포트, ADR-018, D-031, R-031/R-032, M05/M10/M11 Module Control Board.
- Phase / WP / Gate: P5 Evaluation / WP-05.Q2 / G3 Intelligence quality preparation
- 상태:
active - 작업: SkillBoss CLI와 skill pack을 최신 공식 배포본으로 갱신하고, full-rubric HTTP 500을
synthetic/비식별 대조군으로 분리했다. 248-byte 최소 요청에서도
json_object메시지에 literalJSON이 없으면 upstream 400invalid_parameter_error가 SkillBoss HTTP 500으로 wrapping됨을 확인했다. 같은 요청에JSON을 명시하면 HTTP 200으로 전환됐다. - 변경 파일: 외부 SkillBoss CLI/skill pack 설치,
PROJECT_STATE.mdActive Slice와 실행 증거. - 검증: simple 문자열, 1 criterion, 7 criteria/13 synthetic slides, actual fixture content ACK는 200; 기존 full registration과 JSON keyword 없는 최소 요청은 500; explicit JSON actual 1 criterion은 transport 200 뒤 잘못된 field name 때문에 Pydantic이 fail-closed했다.
- 특이사항: SkillBoss 응답의 update warning은 client version header가 없어
current: unknown으로 계속 표시된다. 공식 repository 최신 package는 설치됐지만 안내된install/update.sh는 repository에 존재하지 않는다. raw prompt/output/reasoning은 보존하지 않았다. - 미검증: JSON Schema prompt contract 적용 후 full registration, 대체 multimodal route와 전체 회귀.
- 다음 작업: gateway-level JSON contract injection과 wrapped-upstream safe diagnostic을 구현하고 live registration 및 alternate multimodal capability를 재검증한다.
- 관련 근거: 5.4 Active Slice와 후속 WP-05.Q2 개발리포트.
- Phase / WP / Gate: P5 Evaluation / WP-05.Q2 / G3 Intelligence quality evidence portion
- 상태:
completed_provider_proxy_exact_pending - 작업:
json_objectmode에 literal JSON/canonical schema contract를 주입하고 wrapped upstream status/type/code safe diagnostic을 구현했다. Qwen-specific probe를 공통 multimodal probe로 확장하고 provider scope가 deployment-ready로 승격되지 않게 고정했다. - 변경 파일:
src/axcalib/models/openai_compatible.py,models/capability.py, generic probe script, model gateway/capability/script tests와 eval, ADR-019, WP-05.Q2 개발리포트, README/WORK_SPEC/GOAL/ DESIGN/manual/readiness, Mermaid/SVG/module board, decision/risk와 이 원장. - 검증: Qwen Plus generic text/vision 12,415/10,415ms, supplied registration 7 criteria/model 77,724ms,
notification 1/HITL pending. GPT-4o text/vision 2,650/2,460ms와 registration model 7,121ms 통과.
GLM 4.5V text 5,688ms 통과·vision gateway error로 fail-closed. 전체
prep test79 passed,prep eval8 groups passed,prep validate0 errors/0 warnings, Ruff passed, Pyright 0/0. - 특이사항: SkillBoss CLI package는 0.1.4지만
--version은 0.1.0을 표시한다. 최신 skill repository에도 안내된 update script가 없고 version header 부재로 server warning은 current unknown을 유지한다. raw prompt/image/output/reasoning과 secret은 repository report에 저장하지 않았다. - 미검증: exact on-prem
Qwen3.5-397B-A17B, live completion, approved rubric/gold/human agreement, model failure audit event와 provider-side updater/status mapping 수정. - 다음 작업: current Active Slice
WP-01.R1 transaction-journal-reconciliation; exact endpoint 제공 시 deployment scope와 registration/completion quality를 재검증한다. - 관련 근거: WP-05.Q2 복구 리포트, ADR-019, D-032, R-031/R-033/R-034, M05/M10/M11 Module Control Board.
- Phase / WP / Gate: project handoff checkpoint / current P2-WP-01.R1-G2 unchanged
- 상태:
completed_documentation_checkpoint - 작업: 누적 개발분을 사용자 관점
CHANGELOG.md, 쉬운 용어의docs/HANDOFF.md, 재개용.memory-bank/README.md로 정리했다. 실행상태와 작업 이력의 단일 기준은 이 원장으로 유지했다. - 변경 파일:
CHANGELOG.md,docs/HANDOFF.md,.memory-bank/README.md,README.md, 이 원장. - 검증: 문서 link와 harness contract를
prep validate로 확인한다. 누적 code baseline은 직전 단계의 79 tests, 8 eval groups, Ruff passed, Pyright 0/0 결과를 유지한다. - 특이사항: memory bank는 비권위 요약 캐시이며 요구사항·상태를 별도로 복제해 결정하지 않는다.
- 미검증: exact on-prem Qwen, 공식 rubric/gold, 운영 notification/RBAC/API/Web은 그대로 남는다.
- 다음 작업: Active Slice
WP-01.R1 transaction-journal-reconciliation을 착수한다. - 관련 근거: CHANGELOG, 인수인계 안내, Memory Bank.
- Phase / WP / Gate: P2 / WP-01.R1.1 / G2 Domain hardening
- 상태:
project_dossier_audit_verified_broader_recovery_pending - 작업: project create/update에 revision/hash-bound transaction plan과 append-only JSONL hash chain을 적용했다. dossier CAS와 audit append-once를 재개 가능하게 만들고, HITL report/recorded outbox를 hash prerequisite로 고정했다. allowlisted reconcile pipeline, facade, script와 synthetic eval을 추가했다.
- 변경 파일:
runtime/transactions.py,pipelines/recovery.py, project service/client/audit, recovery script·unit/integration/eval, ADR-020, 개발리포트, WORK_SPEC/GOAL/DESIGN/README/CHANGELOG/HANDOFF, module board·Mermaid/SVG, decision/risk와 이 원장. - 검증: targeted 9 passed, full 88 passed, 9 eval groups passed, crash boundary 3/3, Ruff passed,
Pyright 0 errors/0 warnings,
prep validate0 errors/0 warnings. - 특이사항: Windows global pytest temp cleanup 권한 오류가 한 번 발생했으나 작업공간 고유
--basetemp재실행에서 7/7 통과했다. 외부 모델·실데이터·notification 전송은 사용하지 않았다. - 미검증: education enrollment/audit/outbox, report/outbox producer 자체, stale-lock/orphan cleanup, database/distributed worker transaction과 운영 provider.
- 다음 작업: WP-01.R1.2 broader recovery와 stale-lock quarantine/retention을 구현한다.
- 관련 근거: ADR-020, WP-01.R1.1 리포트, D-033, R-012/R-029/R-035와 M01/M02/M08/M10 Module Control Board.
- Phase / WP / Gate: P2→P7 / WP-01.R1.2 + CLI Alpha / G2 local Alpha→G4 entry
- 상태:
verified_local_library_alpha_g4_ready - 작업: PipelineContext와 typed registry에 request/context/result hash checkpoint, per-run lease, sync/async, cooperative cancel과 terminal/retryable replay를 고정했다. education enrollment/audit transaction reconcile, report-only 기본 workspace maintenance, strict JSONL batch와 Typer/Rich Alpha CLI를 같은 Library registry에 연결했다. optional Docling contract는 저메모리 기본 test와 분리했다.
- 변경 파일:
src/axcalib/pipelines,runtime/execution.py,batch.py,enrollment_transactions.py,maintenance.py, education service/client,src/axcalib/cli, pyproject/lock, unit/integration/eval, actual-PPTX quickstart, ADR-021, 개발리포트, README/CHANGELOG/GOAL/WORK_SPEC/DESIGN, module plan·Mermaid·SVG, decision/risk와 이 원장. - 검증: targeted pipeline 11, education 2, maintenance 1, CLI 2 passed; full lightweight offline 103
passed; 10 eval groups와 Alpha 8/8 checks; Ruff passed; low-memory Pyright 0 errors/0 warnings;
prep validate0 errors/0 warnings. clean wheel[cli]설치, installed CLI 8개 pipeline catalog와 actual PPTX revision 3 /registration_hitl_pending/waiting_humanquickstart를 확인했다. - 특이사항: Windows
os.kill(pid, 0)가 pytest 자기 process를 종료한 직접 원인을 non-mutating Win32 query로 수정했다. 당시 free memory 408~833 MiB는 2차 위험이었다. Docling은 이 실패에 적재되지 않았고 이번 단계에서는 별도 재실행하지 않았다; 기존 16-page/0-text 증거를 유지한다. - 미검증: report/outbox producer 자체, database/distributed worker lease, exact on-prem Qwen full two-gate, official rubric/human gold, Vector DB, 운영 notification/RBAC/API/Web.
- 다음 작업: checkpoint commit/push 후 Active Slice
WP-06.I1 minimal-api-parity를 시작한다. - 관련 근거: ADR-021, WP-01.R1.2 리포트, D-034, R-006/R-010/R-012/R-029/R-036/R-037와 M00/M01/M02/M08/M10/M11 Module Control Board.
- Phase / WP / Gate: P7 / WP-06.I1 / G4 Interfaces
- 상태:
verified_local_runtime_api_alpha_g4_remaining - 작업: optional FastAPI app factory가 같은 Library registry/executor를 호출하도록 pipeline catalog, synchronous run, hash-verified status와 cooperative cancel route를 구현했다. injected bearer verifier와 exact delivery grant는 기본 fail closed이며 generic actor/admin decision field, cross-run access, idempotency/revision conflict를 구조적으로 차단했다. target과 implemented OpenAPI artifact를 분리하고 architecture diagram/infographic를 실제 상태에 맞췄다.
- 변경 파일:
src/axcalib/api, runtimeinspect, API contract tests/export/OpenAPI, pyproject/lock, ADR-022, API/README/CHANGELOG/HANDOFF·개발리포트, decision/risk, module plan·workflow Mermaid/SVG/PNG와 이 원장. - 검증: targeted API 7 passed; full lightweight offline 110 passed; 10 eval groups passed; Ruff passed;
Pyright 0 errors/0 warnings;
prep validate0 errors/0 warnings. clean core wheel은 FastAPI 미설치 import, clean[api]wheel은 FastAPI 0.139.2와 OpenAPI 3.1/4 routes import를 확인했다. - 특이사항: 초기 코드리뷰에서 registry allowlist를 HTTP 권한으로 오인한 설계를 발견해 별도
ApiPipelineGrant와 authority-field 거부로 수정했다. 첫 venv sync access denied는 read-only dist-info metadata 복구 후 해결했다. 첫 full test 2건은 아직 없던 report link뿐이었고 최종 110/110으로 해소했다. - 미검증: 실제 OIDC/JWKS·tenant/project RBAC, principal-bound HITL/education command, upload/staging, request/rate limits, socket server, 202 worker/SSE/resume, 운영 배포. Docling/live Qwen은 이 slice에서 호출하지 않았다.
- 다음 작업: checkpoint commit/push 후 Active Slice
WP-06.I2 principal-bound-command-contract를 시작한다. 정책 승인 전 synthetic/in-process contract만 진행한다. - 관련 근거: ADR-022, WP-06.I1 리포트, D-035, R-010/R-016/R-017/R-021/R-038/R-039와 M02/M09/M10/M12 Module Control Board.
- Phase / WP / Gate: P7 / WP-06.I2a / G4 Interfaces
- 상태:
verified_local_project_api_contract_g4_remaining - 작업:
POST /v1/projects가 verified project owner/administrator,projects:createscope와 organization을 요구하고 opaque staged PPTX/sidecar의 media·size·SHA-256을 검증하도록 구현했다. 등록·완료 HITL decision endpoint는 request actor 없이 administrator principal, explicit project scope, dossier organization과 expected revision을 domain service까지 bind한다. stable principal/idempotency key의 replay는 request/context/artifact hash와 creation audit exact match만 허용한다. - 변경 파일:
src/axcalib/apiartifact/auth/model/app, client/project service revision·actor contract, project/runtime API tests와 generated OpenAPI, ADR-023·API threat model·I2a 개발리포트, README/API/ HANDOFF/GOAL/WORK_SPEC/DESIGN/AGENTS/CHANGELOG/memory bank, decision/risk, module plan·workflow Mermaid· SVG/PNG와 이 원장. - 검증: project API 5 passed, combined API 12 passed, full lightweight offline 115 passed, 10 eval groups
passed, Ruff check passed, new API/project/test module format check passed, low-memory Pyright 0 errors/0 warnings,
prep validate0 errors/0 warnings. clean[api]wheel은 FastAPI 0.139.2/OpenAPI 3.1/7 routes를 확인했고 두 SVG는 Edge headless로 렌더해 clipping/상태 라벨을 확인했다. - 특이사항: 첫 replay가 새 random transaction event를 만들며
dossier_target_missing_event로 충돌한 문제를 발견해 domain create 전에 existing project exact match를 확인하도록 수정했다. 부분 commit의 dossier를 정상 replay로 오인하지 않도록 principal-bound creation audit도 필수로 검사한다. replay는 staging 만료 뒤에도 exact persisted match로 동작하며 신규 create는 expected hash를 domain transaction 직전까지 전달하고 평가 전 frozen proposal hash도 재검증한다. 저장소 전체ruff format --check는 기존 53개 파일의 포맷 부채를 보고해 범위 밖 일괄 변경은 하지 않았다. 첫 wheel smoke는 PowerShell 인용 SyntaxError였고 설치 환경을 재사용한 짧은 명령으로 해소했다. - 미검증: 실제 OIDC/JWKS와 claim mapping, immutable object upload/ACL/malware scan, hash 확인 뒤 file 교체 TOCTOU 제거, project read/list/report authorization, socket server/rate limit, education principal binding, administrator decision semantic replay, distributed 202 worker/SSE. Docling/live model/실데이터/ 운영 notification은 호출하지 않았다.
- 다음 작업: commit/push checkpoint 후 WP-06.I2b에서 learner/mentor/instructor/administrator를 program version·enrollment·milestone·learner/organization context에 bind하는 synthetic contract를 진행한다.
- 관련 근거: ADR-023, API Threat Model, WP-06.I2a 리포트, D-036, R-016/R-021/R-038/R-039/R-041/R-042와 M02/M09/M12 Module Control Board.
- Phase / WP / Gate: P7 / WP-06.I2b / G4
- 상태:
closeout_validation_in_progress - 작업: actor 없는 education program/enrollment/milestone resource endpoint, learner/mentor/instructor/ administrator resource scope와 organization/program-hash/revision/project-context guard를 구현했다. ADR-024, API threat model, generated OpenAPI, module plan/두 Mermaid/SVG/PNG와 개발리포트를 같은 change set으로 갱신했다.
- 검증: education API 5 passed, combined API 17 passed, education unit/integration 7 passed, changed-scope
Ruff와 Pyright 0/0. 첫 full
prep.ps1 test는 118 passed였고 새 report link와 final history가 아직 없어서 harness 2건만 실패했다. - 특이사항: 별도 router의 postponed annotation이 auth dependency를 query parameter로 해석한 초기 422를 eager annotation으로 수정했다. idempotent 성공 replay가 current revision 검사에 막히지 않도록 authorization 뒤 domain/idempotency 순서를 고정했고, enrollment creation audit와 cross-tenant requirement lookup 순서도 보강했다.
- 미검증: 문서/history 보강 뒤 full test 재실행, eval/validate, clean API wheel. 실제 OIDC/JWKS, education assignment source, immutable upload, socket server/worker와 실데이터는 범위 밖이다.
- 다음 작업: 동일 저메모리 명령을 순차 재실행하고 성공하면 별도 append-only closeout history로 WP-06.I2b를 완료 처리한다.
- Phase / WP / Gate: P7 / WP-06.I2b / G4
- 상태:
verified_local_education_api_contract_g4_remaining - 작업: immutable program safe GET/self enrollment, authorized enrollment GET, learner milestone start, configured instructor/mentor confirmation·score, project bind/sync와 administrator completion decision을 actor 없는 resource endpoint로 제공했다. education generic pipeline grant는 금지하고 principal subject, resource assignment scope, organization, program hash와 expected revision을 domain transaction까지 bind했다.
- 변경 파일:
src/axcalib/apiauth/model/app/education router, education pipeline/service revision·authority· project-context contract, API tests/generated OpenAPI, ADR-024·I2b 리포트·threat model, README/API/HANDOFF/ GOAL/WORK_SPEC/DESIGN/AGENTS/CHANGELOG/memory bank, decision/risk, module plan·workflow Mermaid·SVG/PNG와 이 원장. - 검증: education API 5 passed, combined API 17 passed, full lightweight offline 120 passed, 10 eval groups
passed, Ruff check passed, changed-file format check passed, low-memory Pyright 0 errors/0 warnings,
prep validate0 errors/0 warnings. clean[api]wheel은 FastAPI 0.139.2/OpenAPI 3.1/16 paths를 확인했고 두 SVG는 Edge headless로 렌더해 clipping/상태 라벨을 확인했다. - 특이사항: HIST-008의 첫 full test 2건 실패는 새 report/history 미완성만 감지한 harness contract였다. 두 산출물을 추가한 뒤 같은 명령이 120/120으로 통과했다. auth dependency annotation, replay/revision 순서, persisted enrollment audit 재검증, cross-tenant requirement enumeration과 sync context 재검증을 코드리뷰 중 수정했다.
- 미검증: approved OIDC/JWKS와 claim mapping, actual mentor/instructor assignment source·revocation, program publish/retire, legacy enrollment migration, immutable upload, project read/decision replay, socket server/rate limit, distributed 202 worker/SSE. Docling/live model/실데이터/운영 notification은 호출하지 않았다.
- 다음 작업: WP-06.I2c에서 URI-redacted authorized project GET과 principal-bound administrator decision semantic replay를 구현해 R-042 응답 유실 복구 계약을 닫는다.
- 관련 근거: ADR-024, API Threat Model, WP-06.I2b 리포트, D-037, R-016/R-021/R-026/R-030/R-038/R-039/R-043와 M02/M09/M12 Module Control Board.
- Phase / WP / Gate: P7 / WP-06.I2c / G4
- 상태:
active_project_read_decision_replay_audit - 작업: WP-06.I2b checkpoint
e74ea69의 원격 일치를 확인한 뒤 authorized project GET과 registration/completion decision semantic replay의 현재 공백을 감사하고 I2c를 착수했다. - 변경 파일: 착수 시점에는 이 원장의 Active Slice와 dependency Gantt 상태만 갱신했다.
- 검증:
git status -sb, local/remote SHA 비교와rg기반 API/domain/idempotency 계약 감사를 수행했다. 작업트리는 착수 전에 깨끗했고 local/remote는 동일 SHA였다. - 특이사항: 현재 decision endpoint는 expected revision으로 중복 mutation은 막지만 성공 결과를 저장·재생하지 않는다. authorized project GET이 없고 verified API principal의 decision authority context도 domain record에 명시적으로 전달되지 않는 공백을 함께 발견했다.
- 미검증: I2c 구현, contract/E2E/OpenAPI, full regression/eval/static/validate는 아직 수행하지 않았다.
- 다음 작업: local idempotency record를 재사용하는 principal-bound decision replay, URI-redacted project resource view와 owner/admin read authorization을 가장 작은 end-to-end slice로 구현한다.
- 관련 근거: WP-06.I2c Exit Evidence, R-042, M02/M10/M12 Module Control Board.
- Phase / WP / Gate: P7 / WP-06.I2c / G4
- 상태:
verified_local_project_read_decision_replay_contract_g4_remaining - 작업: owner creation audit/admin read scope와 organization을 검사하는 URI/free-text redacted project
GET, registration/completion decision의 required idempotency key와 principal/resource/stage/revision/payload
semantic replay를 구현했다. API decision authority를
verified_api_principal로 기록하고 cached result를 persisted decision/audit와 재검증한다. - 변경 파일:
src/axcalib/apiproject router/model/export,client.py와 project service authority/replay, API contract/generated OpenAPI, ADR-025·I2c 리포트·threat model, README/API/manual/HANDOFF/GOAL/ WORK_SPEC/DESIGN/AGENTS/CHANGELOG/memory bank, decision/risk, module plan·workflow Mermaid·SVG/PNG와 이 원장. - 검증: project API 6 passed, runtime+project+education API 18 passed, full lightweight offline 121 passed,
10 eval groups passed,
ruff check .passed, changed Python format 7/7, low-memory Pyright 0 errors/ 0 warnings,prep validate0 errors/0 warnings. clean[api]wheel은 FastAPI 0.139.2/OpenAPI 3.1/ 17 paths를 확인했고 두 SVG는 Edge headless로 렌더해 clipping과 상태 라벨을 확인했다. - 특이사항: repository 전체 format check는 이번 범위 밖 기존 52개 파일 drift 때문에 실패했으며 변경 파일은 모두 통과했다. raw idempotency key는 저장하지 않고 digest 내부 key를 사용한다. 다른 actor/resource/payload 재사용과 owner/org mismatch는 mutation 전에 차단된다.
- 미검증: domain commit과 idempotency success write 사이 process crash, multi-host/distributed store와 retention, actual OIDC/JWKS, ownership transfer, project list/report/evidence authorization, immutable upload, 202 worker/SSE. Docling/live model/실데이터/운영 notification은 호출하지 않았다.
- 다음 작업: checkpoint commit/push 후 Active Slice WP-06.I3에서 durable local 202 worker와 authorized poll/retry/resume 계약을 구현한다. OIDC/immutable upload는 Owner/Security 승인 dependency로 유지한다.
- 관련 근거: ADR-025, API Threat Model, WP-06.I2c 리포트, D-038, R-016/R-017/R-021/R-038/R-039/R-042와 M02/M10/M12 Module Control Board.
- Phase / WP / Gate: P7 / WP-06.I3 / G4
- 상태:
active_durable_local_worker_audit - 작업: I2c checkpoint
c089d6d의 원격 일치를 확인하고 기존 executor, checkpoint, batch, run API와 poll/cancel authorization을 감사해 202 worker의 최소 경계를 확정했다. - 변경 파일: 착수 시점에는 이 원장의 Active Slice와 dependency queue 상태만 갱신했다.
- 검증:
git status -sb, local/remote SHA 일치,prep status/next와rg/source inspection으로LocalPipelineExecutor, FastAPI run route, API grant와 checkpoint contract를 확인했다. - 특이사항: executor는 lease, PREPARED/RUNNING/terminal/retryable 상태, result hash와 cooperative cancel을
이미 제공하지만 HTTP POST가 inline 실행되고 checkpoint는 의도적으로 payload 원문을 보존하지 않아
독립 worker가 요청을 복원할 durable queue envelope가 없다. 기존 동기 호환성을 유지하고 deployment
grant가
queued로 선언한 pipeline만 202로 보내는 방향을 선택했다. - 미검증: queue/claim/restart 구현, payload size/integrity, stale claim, API 202/OpenAPI, worker script와 regression은 아직 수행하지 않았다.
- 다음 작업: bounded typed job envelope, lease-expiring claim과 executor replay를 Library에 추가하고 queued grant의 202/Location 및 기존 authorized poll/cancel에 연결한다.
- 관련 근거: WP-06.I3 Exit Evidence, ADR-021, R-010/R-012/R-039와 M00/M10/M12.
- Phase / WP / Gate: P7 / WP-06.I3 / G4
- 상태:
completed_verified_local_contract - 작업: exact grant의 inline/queued mode, validated/hash-bound local job, oldest-available expiring claim, retryable-only bounded backoff, terminal replay와 one-job Worker를 같은 executor에 연결했다. queued API는 domain 실행 없이 202/Location/Retry-After를 반환하며 authorized poll은 execution/queue status를 분리한다.
- 변경 파일:
src/axcalib/runtime/worker.py, executor/client/API models/routes, worker script와 unit/ integration/contract test, runtime OpenAPI, Library Alpha eval,harness/prep.py; WORK_SPEC/GOAL/DESIGN, ADR-026, API/Worker manual, threat model, report, module/workflow/SVG/PNG, README/CHANGELOG/HANDOFF/memory bank와 이 원장. - 검증: split
prep test130 passed(unit 83, integration 28, contract 19), API+Worker combined 27/27,prep eval10 groups,ruff check ., I3 Python format 13/13, Pyright 0/0,prep validate0/0, generated OpenAPI exact contract, clean Python 3.12[api]wheel FastAPI 0.139.2/OpenAPI 3.1/17 paths와 Worker prepared→succeeded, SVG XML/links와 1920×1080/1600×1050 visual audit. - 특이사항: completed re-enqueue의 replay flag, generic output의 local URI 노출, queue status 부재와 run-ID 파일순 claim, concurrent second-lock의 stale prepared view를 코드리뷰에서 발견해 각각 수정했다. monolithic test의 60초 orchestration timeout은 test group process 격리와 선택 실행으로 복구했다. 기존 repo format drift 52개는 범위 밖이라 일괄 변경하지 않았다.
- 미검증: Docling/live model은 저메모리·외부호출 분리 원칙에 따라 재실행하지 않았다. 실제 OIDC/JWKS, 계정·assignment source, immutable upload/malware/ACL, socket/load/penetration, worker heartbeat/dead-letter, broker/database distributed queue와 운영 배포는 미검증이다.
- 다음 작업: WP-06.I4는 Product/Security/Platform Owner가 identity/assignment/artifact trust policy를
승인할 때까지
blocked_policy다. 승인 전에는 fail-closed local port/schema/threat model만 유지한다. - 관련 근거: ADR-026, WP-06.I3 리포트, D-039, R-010/R-012/R-039/R-044와 M10/M12 Module Control Board.
- Phase / WP / Gate: P0 maintenance / WP-00.D2 / documentation control; 제품 G4 판정 불변
- 상태:
active_portable_dual_wiki_harness - 작업: 사용 매뉴얼, 실습 사례, 코드·프로젝트 설명과 개발과정을 메인 저장소에서 관리하고 GitHub/GitLab Wiki 별도 Git 저장소에 같은 내용으로 배포하는 문서 전달 계약을 착수했다.
- 변경 파일: 착수 시점에는
PROJECT_STATE.md의 Active Slice, queue와 이력만 갱신했다. - 검증: working tree clean, GitHub repository
has_wiki=true,AXCalib.wiki.git은 아직 initial page가 없어 clone 불가함을 read-only로 확인했다. GitLab remote는 사내 URL이 제공되지 않아 호출하지 않았다. - 특이사항: Wiki를 메인 저장소와 별도로 직접 편집하면 두 플랫폼과 코드 문서가 갈라지므로
wiki/를 단일 원본으로 두고 target별 sidebar 파일명만 export에서 변환한다. credential/remote URL은 commit하지 않는다. - 미검증: GitHub initial Home 생성과 실제 Wiki push, 사내 GitLab runner/권한/remote push.
- 다음 작업: canonical Wiki pages, manifest, cross-platform export/publish와 validation/test를 구현한다.
- 관련 근거: WP-00.D2 Exit Evidence와 후속 ADR/운영 매뉴얼.
- Phase / WP / Gate: P0 maintenance / WP-00.D2 / documentation control; 제품 G4 판정 불변
- 상태:
completed_verified_local_contract - 작업: 사용자 매뉴얼·두 Gate 실습·Library/API/Web/App·on-prem·보안·개발 프로세스를
wiki/단일 원본으로 구성했다. manifest가 page/mirror/asset/sidebar를 allowlist하고 GitHub/GitLab export가 본문 parity와 target별 sidebar를 만든다. PROJECT_STATE는 Development Ledger로 자동 mirror된다. - 변경 파일:
wiki/,harness/wiki.py,scripts/wiki/sync_wiki.py, Wiki unit/integration/CI contract,.github/workflows/wiki.yml,.gitlab-ci.yml; AGENTS/WORK_SPEC/GOAL/DESIGN/README/CHANGELOG/HANDOFF/ memory bank, ADR-027, Wiki runbook/report, DECISIONS/RISK_REGISTER와 이 원장. - 검증: Wiki targeted 6/6와 dependency-free parity 1/1, local bare Wiki dry-run→push→second no-change,
split full tests 136 passed(unit 86, integration 31, contract 19),
prep eval10 groups,ruff check ., Pyright 0/0,prep validate0/0, GitHub/GitLab CI YAML parse가 통과했다. - 특이사항: publisher는 환경변수 remote, error redaction, dirty checkout/origin mismatch guard, atomic
export, 이전 AXCalib managed-file manifest 범위의 prune와 명시적
--push를 사용한다. CI publish는 enable variable이 없으면 실행되지 않는다. 긴 전체 pytest 대신 세 group을 독립 실행했다. - 미검증: GitHub 최초 Home과 실제 GitHub Wiki push/render, 사내 GitLab hostname·runner·deploy credential·protected variable·Wiki push/render. 실제 remote는 변경하지 않았다.
- 다음 작업: platform Owner가 Wiki bootstrap을 승인·구성하면 GitHub/GitLab live publication을 각각
검증한다. 제품 Active Slice는 WP-06.I4
blocked_policy로 복귀하며 승인 전 fail-closed 경계를 유지한다. - 관련 근거: ADR-027, Wiki runbook, WP-00.D2 report, D-040과 R-045.
- Phase / WP / Gate: P0 maintenance / WP-00.D2 / GitHub documentation deployment; 제품 G4 판정 불변
- 상태:
partial_main_deployed_wiki_bootstrap_blocked - 작업: WP-00.D2 change set을
origin/main에 배포하고 GitHub Actions의 portable Wiki validation을 확인했다. 별도 Wiki 저장소의 초기화를 위해 exported content direct push도 시험했다. - 변경 파일: 첫 배포 commit의 36개 WP-00.D2 파일과 배포 증적을 갱신한 이 원장·README·CHANGELOG· 개발리포트·memory bank.
- 검증: main local/remote SHA
b2c6e489c41c4ff6ccd6c7e1bea525384b38db4b일치, GitHub Actions run30014678127의validatesuccess,publish-githubskipped. - 특이사항: GitHub Wiki는 최초 웹 Home 이전에는 Git remote가 존재하지 않아 direct push도
Repository not found로 fail closed했다. Chrome connector의 session metadata 오류로 웹 bootstrap을 자동화하지 않았으며 credential이나 원문을 다른 endpoint로 보내지 않았다. - 미검증: GitHub 최초 Home 생성, repository variable 활성화, 실제 Wiki push/render와 사내 GitLab runner/credential/live push.
- 다음 작업: 저장소 Owner가 GitHub Wiki에서 최초 Home을 한 번 생성한 뒤 canonical publisher로
전체 page를 push·render 검증한다. 제품 Active Slice는 WP-06.I4
blocked_policy를 유지한다. - 관련 근거: GitHub main commit
b2c6e48, Actions run30014678127, Wiki runbook과 R-045.
- Phase / WP / Gate: P0 maintenance / WP-00.D2 / GitHub Wiki live delivery; 제품 G4 판정 불변
- 상태:
github_live_verified_gitlab_pending - 작업: Owner가 생성한 최초 Home을 기준으로 canonical publisher dry-run에서 17개 관리 파일만
변경됨을 확인한 뒤 GitHub Wiki에 push했다. 이후 repository variable
AXCALIB_WIKI_PUBLISH_ENABLED=true를 활성화했다. - 변경 파일: GitHub Wiki의 Home, 10개 추가 page, Development Ledger, sidebar, deployment manifest와 3개 image asset; main에서는 현재 상태 문서와 Wiki governance page.
- 검증: Wiki local/remote SHA
f3846480ac461e398ae91b5f83f5644e939688a7일치, checkout clean, Home/Getting Started/Development Ledger/API-Web-App page 4/4 HTTP 200, PNG/JPEG asset 3/3 HTTP 200, repository variable read-backtrue. - 특이사항: 최초 임시 Home은 canonical Home으로 대체됐다. manifest 밖 team-owned page는 삭제하지 않았고 credential은 출력·파일·로그에 남기지 않았다.
- 미검증: enable variable을 사용한 GitHub Actions publish job end-to-end와 사내 GitLab hostname·runner·deploy credential·live render.
- 다음 작업: 이 change set의 main push로 GitHub Actions automatic publish를 검증한다. GitLab은 사내
Platform Owner가 remote/runner/credential을 제공한 뒤 동일 하네스로 검증한다. 제품 Active Slice는
WP-06.I4
blocked_policy를 유지한다. - 관련 근거: GitHub Wiki commit
f384648, live Wiki, Wiki runbook과 R-045.
- Phase / WP / Gate: P0 maintenance / WP-00.D2 / GitHub Wiki automatic delivery hardening; 제품 G4 판정 불변
- 상태:
active_node24_annotation_cleanup - 작업: repository variable을 사용한 첫 automatic workflow에서 validate와 publish job이 모두
성공하고 Wiki가
9523ce2로 갱신됨을 확인했다. 실행 화면의 Node.js 20 deprecation annotation을 제거하기 위해 checkout/setup-python을 공식 Node.js 24 major인 v6으로 올렸다. - 변경 파일:
.github/workflows/wiki.yml,PROJECT_STATE.md,CHANGELOG.md, WP-00.D2 report. - 검증: run
30016911593job89239184265validate success, job89239238620publish success, Wiki remote9523ce2d812f44c1b947e7b4d6df311b5f2d001b. - 특이사항: GitHub run 상단 status는 두 job 종료 뒤에도 일시적으로
in_progress로 표시됐지만 job API와 Wiki 원격 갱신은 성공했다. deprecation warning은 product/runtime 실패가 아니라 action runtime major drift다. - 미검증: v6 action을 사용한 live workflow와 annotation 제거, 사내 GitLab publication.
- 다음 작업: 이 change set을 push해 v6 validate/publish와 warning 부재를 검증하고 정정 이력을
append한다. 제품 Active Slice는 WP-06.I4
blocked_policy를 유지한다. - 관련 근거: Actions run 30016911593,
GitHub Wiki
9523ce2와 공식 checkout/setup-python v6 release.
- Phase / WP / Gate: P0 maintenance / WP-00.D2 / GitHub Wiki automatic delivery closeout; 제품 G4 판정 불변
- 상태:
completed_github_live_automatic_verified - 작업: Node.js 24 기반 checkout/setup-python v6 workflow를 실제 main push로 실행해 validate와 publish를 완료하고 Node.js 20 deprecation annotation 제거를 확인했다.
- 변경 파일:
PROJECT_STATE.md, README/GOAL/CHANGELOG, WP-00.D2 report, handoff/memory bank와 Wiki governance status. - 검증: Actions run
30017233639completed/success, validate89240300470과 publish89240362177success, 두 check-run annotation 0/0, Wiki remoted8bf0537772a29ff5d486196c14f0718a7aa9b74. - 특이사항: 이전 run의 상단 status 지연과 Node.js 20 warning은 v6 run에서 재현되지 않았다.
GITHUB_TOKEN기반 publication이 실제 Wiki Git repository에 성공함을 확인했다. - 미검증: 사내 GitLab hostname·runner·deploy credential·protected variable과 live page/image render.
- 다음 작업: 사내 개발서버가 GitHub main을 pull해 GitLab main으로 push한 뒤 GitLab Wiki target을
같은 하네스로 검증한다. 제품 Active Slice는 WP-06.I4
blocked_policy를 유지한다. - 관련 근거: Actions run 30017233639,
GitHub Wiki
d8bf053, Wiki runbook과 R-045.
- Phase / WP / Gate: P7 / WP-06.I4.0-1 / G4 Interfaces
- 상태:
active_offline_contract - 작업: 운영 identity/upload 승인을 대신하지 않는 I4-0 결정 패킷과 공급자 중립 I4-1 OIDC/JWKS access-token reference contract를 착수했다. 이후 GOAL 정렬, 첫 사용 API 단순성, 안전성·재현성 리뷰와 다양한 example self-check를 별도 품질 slice로 이어가도록 Exit Evidence에 포함했다.
- 변경 파일: 착수 시점에는
PROJECT_STATE.md의 Active Slice, queue와 Exit Evidence만 갱신했다. - 검증: RFC 8725/9068, OpenID Connect Discovery와 PyJWT 검증 계약을 기준으로 fixed asymmetric
algorithm allowlist, exact issuer/audience,
at+jwt, issuer-bound JWKS와 claim allowlist를 설계했다. - 특이사항: 사내 issuer/audience/claim name, 계정 회수·배정 source와 object storage 정책은 제공되지 않았으므로 실제 endpoint·계정·upload를 만들지 않는다. local synthetic key/token만 사용한다.
- 미검증: 실제 discovery/JWKS key rotation·revocation, 교육 배정 원장, immutable object version/ACL/ malware/retention, socket deployment와 penetration test.
- 다음 작업: 정책 결정 패킷, optional identity adapter와 negative security contract를 구현·검증하고 threat model, module control, Wiki와 단계 종료 이력을 같은 change set에서 갱신한다.
- 관련 근거: 5.10 Exit Evidence, R-021/R-039/R-043와 M02/M12.
- Phase / WP / Gate: P7 / WP-06.I4.0-1 → P0/P7 / WP-00.Q1 / G4 Interfaces
- 상태:
completed_local_reference_operational_policy_blocked - 작업: identity/upload 운영 결정 패킷과 provider-neutral OIDC/JWKS access-token verifier를
추가했다. asymmetric algorithm·issuer·audience·token type·time/JTI·issuer-bound key와
role/scope/organization mapping을 fail closed로 검증하고 기존
TokenVerifier를 통해 API에 조합했다. 위협모델, ADR, module/구조도, Wiki와 후속 Library 표준화/example 계획을 함께 갱신했다. - 변경 파일:
src/axcalib/api/oidc.py, identity unit/API contract,pyproject.toml,uv.lock, identity/upload decision packet, ADR-028, I4 report, threat model, GOAL/WORK_SPEC/DESIGN/README, architecture diagram/module board, Wiki, CHANGELOG와 이 원장. - 검증: identity targeted 24 passed, split full 160 passed(unit 108/integration 31/contract 21),
10 eval groups,
ruff check ., 새 Python format 3/3, Pyright 0 errors/0 warnings,prep validate0 errors/0 warnings, Wiki targeted 9와 dependency-free CI contract 1 passed. clean core wheel은 FastAPI/PyJWT가 없고 clean[identity]wheel은 FastAPI 0.139.2, PyJWT 2.13.0과 verifier import를 확인했다. 두 stakeholder SVG를 렌더해 상태 라벨을 검토했다. - 특이사항: 전체
uv sync --all-extras --dev는 기존 editable dist-info 제거 중 access denied로 실패해 dependency만 좁게 설치했고 clean wheel로 격리를 재검증했다. repository 전체 format check는 기존 51개 파일 drift를 보고해 이번 변경에서 일괄 재작성하지 않았다. direct Pyright의 base Conda 탐색은 workspace.venv를 명시해 재현 가능한 0/0 명령으로 교정했다. - 미검증: 실제 discovery/JWKS HTTPS fetch·rotation·revocation, authoritative account/education assignment, immutable upload/ACL/malware/retention, reverse proxy/socket/penetration test와 사내 GitLab publication.
- 다음 작업: Active Slice
WP-00.Q1 goal-alignment-usability-example-audit에서 전체 GOAL trace, public facade와 script 단순성, EX-01~EX-12 정상·오류·경계 self-check를 수행한다. 승인된 운영값 없이는 remote identity/upload adapter를 구현하지 않는다. - 관련 근거: I4 report, decision packet, ADR-028, D-041, R-046와 M12.
- Phase / WP / Gate: P0/P7 / WP-00.D2 delivery closeout / G4 evidence publication
- 상태:
github_main_and_wiki_live_verified - 작업: I4 local identity reference, 원장, 구조도, 개발 리포트와 WP-00.Q1 계획을 GitHub main에 배포하고 canonical Wiki 자동 publication을 확인했다.
- 변경 파일:
PROJECT_STATE.md,CHANGELOG.md, I4 report의 delivery evidence. - 검증: main local/remote
705253036995b4dd523db7ff4c547e32ac30a77e일치, Actions run30050877129의 validate와 publish-github job 2/2 success, check annotation 0/0, Wiki remote49b1fbc62a7718a8e8f9bc2396e81210c9b2d24f, Home/API/Development/Examples page 4/4 HTTP 200. - 특이사항: Wiki commit message가
HIST-2026-07-24-002를 가리켜 첫 기능 checkpoint와 일치한다. 이 closeout entry를 반영한 후속 자동 publish도 별도로 확인한다. - 미검증: 사내 GitLab runner/credential/protected variable과 live Wiki publication.
- 다음 작업: Active Slice
WP-00.Q1 goal-alignment-usability-example-audit. - 관련 근거: Actions run 30050877129,
GitHub main
7052530, GitHub Wiki49b1fbc와 Wiki 운영 안내.
- Phase / WP / Gate: P0/P7 / WP-00.Q1 / G2-G4 local standardization evidence
- 상태:
active_case_read_facade_and_example_audit - 작업: dossier를 project_id 기반으로 계속 다시 읽는
Case핸들과get_current_status/get_summary의 object/JSON/Markdown 출력을 첫 하위 slice로 착수했다. 기존 immutable Agent report와 별도 사람 결정·criterion 보정을 합쳐 보이되 원본 report를 덮어쓰지 않는 계약으로 제한한다. 이후 같은 slice에서 GOAL trace, script/API 단순성, EX-01~EX-12 정상·오류·경계 self-check를 이어간다. - 변경 파일: 착수 시점에는
PROJECT_STATE.md의 Active Slice, queue와 append-only 이력만 갱신했다. - 검증: README/WORK_SPEC/GOAL/DESIGN, 현재 facade/report/dossier/state/API와
register_case사용처를 대조했다. 새 workflow나 상태전이 없이 read projection과 renderer를 추가하는 중간 규모 변경으로 산정했다. - 특이사항:
ReportRenderer는 단일 불변 평가초안 renderer로 유지한다.register_case의 Alpha 사용자 반환형은Case로 정리하고 raw dossier snapshot은create_project와case.dossier로 명시한다. remote API에는 자유서술·경로·권한 정보를 그대로 노출하지 않는다. - 미검증: 구현, targeted/full test, example repeat, packaging, Wiki와 diagram drift.
- 다음 작업: typed Case projection과 순수 Markdown renderer를 구현하고 호환·무결성·사람 보정 회귀를 통과시킨 뒤 Q1 전체 추적·예제 감사를 완료한다.
- 관련 근거: 5.12 Exit Evidence와 Library 표준화 계획.
- Phase / WP / Gate: P0/P7 / WP-00.Q1 / G2-G4 local standardization evidence
- 상태:
completed_standardized_local_alpha - 작업:
register_case가 project-id-bound liveCase를 반환하도록 정리하고 최신 dossier와 immutable report를 연결하는 status/summary object·JSON·Markdown, 사람 보정 분리와 report transaction-hash guard를 구현했다. actual proposal + synthetic completion readable lifecycle, EX-01~12 catalog, GOAL/WP/Gate·script·security audit, Case schema를 추가했다. checkout script bootstrap, safe quickstart output, integration shard와 Wiki atomic retry 결함도 같은 slice에서 닫았다. - 변경 파일:
src/axcalib/case.py,schemas/case.py,reports/case.py, client/project transaction/API adapter, Case tests/examples/catalog, generated schema, Q1 report/ADR-029, GOAL/WORK_SPEC/DESIGN/README, workflow blueprint/module/SVG, harness/Wiki/manual/hand-off/memory-bank와 이 원장. - 검증: unit 118, integration 34(core 9/eval 19/ops 6), contract 21로 총 173 passed,
EX representative 16, 10 eval groups, actual-PPT quickstart/HITL과 pass→approve·accept→accept readable
example 통과. clean core wheel에서 optional dependency 유입 0과 actual-PPT Case를, clean
cli/api/identity wheel에서 import/OpenAPI 3.1/installed CLI를 확인했다. Ruff all, 변경 Python format,
Pyright 0/0, schema parity,
prep validate0/0, Wiki validate 0, GitHub/GitLab 17-file export와 CI parity 1을 통과했다. - 특이사항: monolithic integration은 assertion이 아니라 64초 외부 timeout과 closed-stdout
OSError 22로 종료돼 세 shard로 대체했다. transaction script의 incomplete editable import와 Wiki transient Windows lock을 재현·수정했다. clean interface 첫 진단의 잘못된 import/option/ 조기 종료 pipe는 명령 오류로 분리한 뒤 올바른 공개 경로로 재검증했다. - 미검증: Docling parser current-run, live model, exact on-prem
Qwen3.5-397B-A17B, 공식 rubric/gold, embedding/Qdrant, remote IdP/upload/assignment, distributed Worker, API/Web Case authorization, PDF와 실제 사내 GitLab publication. Docling은 wheel extra metadata만 확인하고 저메모리 별도 contract 원칙을 유지했다. - 다음 작업: Active Slice
WP-03.Q2 owner-approved-rubric-gold-benchmark는 Evaluation Owner 자료 제공까지blocked_policy다. 운영 경로 WP-06.I4.2도 Product/Security/Platform Owner가 identity, assignment와 immutable upload policy를 승인하기 전 구현하지 않는다. - 관련 근거: Q1 report, ADR-029, D-042, R-037/R-045/R-047와 module plan 1.10.
- Phase / WP / Gate: P5 / WP-03.Q2a / G3 Intelligence quality input contract
- 상태:
active_offline_contract_official_benchmark_blocked - 작업: Evaluation Owner가 제공해야 할 자료를 단일 Markdown이 아니라 사람이 승인하는 Markdown, 실행형 review-policy YAML, criterion gold-label JSONL과 hash-bound manifest로 분리하는 입력계약을 착수했다. 같은 slice에서 draft/approved guard, synthetic package validation, Docling 저메모리 preflight와 SkillBoss Qwen provider-proxy 상태를 갱신한다.
- 변경 파일: 착수 시점에는
PROJECT_STATE.md의 Active Slice, Q2a Exit Evidence, queue와 이력을 갱신했다. - 검증: 현재 policy registry, EvaluationReport, evidence gold, Q1/Qwen/SkillBoss 리포트를 대조했다. SkillBoss npm CLI는 실제 최신 0.1.4이고 공개 skill pack은 설치 SHA와 동일하지만, 서버가 skills latest 1.1.0/current unknown을 반환하며 공개 updater가 없는 배포 불일치를 확인했다. 비식별 합성 Qwen3.5 Plus JSON smoke는 성공했다.
- 특이사항: exact
Qwen3.5-397B-A17B는 SkillBoss catalog에 없고 Plus/Flash alias만 있다. 공식 benchmark threshold와 정답 label은 구현자가 만들지 않으며 Evaluation Owner 승인 전 quality pass/fail을 계산하지 않는다. - 미검증: owner-approved rubric/labels, exact on-prem Qwen, 현재 저메모리 상태의 Docling parse, multi-reviewer agreement와 실제 benchmark quality.
- 다음 작업: typed gold package, 복사용 template, validator와 synthetic example을 구현하고 resource-safe Docling/SkillBoss 진단을 검증한 뒤 Q2a를 종료한다.
- 관련 근거: 5.13 Q2a Exit Evidence, ADR-016/019, Q1 report와 SkillBoss recovery report.
- Phase / WP / Gate: P5 / WP-03.Q2a → Q2b / G3 Intelligence quality input contract
- 상태:
q2a_completed_q2b_blocked_owner_input - 작업: Evaluation Owner 입력을 승인 Markdown, published review-policy YAML, adjudicated gold JSONL과 hash manifest로 분리했다. schema/loader/validator/runner와 EX-13을 추가하고, 공식 approved benchmark는 숨겨 둔 test split의 registration/completion label만 평가하도록 fail closed했다.
- 변경 파일:
src/axcalib/calibration/gold_benchmark.py, 두 pipeline script, 4-file template, generated schema 4종, unit/integration test, ADR-030, WP-03 report, 기준문서·diagram·Wiki·handoff. - 검증: draft validator와 synthetic approved package 16 targeted 통과. 분할 전체 test 189(unit 131, integration 37=9/22/6, contract 21), offline eval 10 groups, Ruff lint와 변경 Python format, Pyright 0 errors/0 warnings, generated schema check와 workspace validate 0/0을 통과했다. workflow SVG는 Edge headless PNG로 렌더링해 clipping/status 표현을 육안 확인했다.
- 특이사항: Docling 2.113.0은 현재 1,368MB 가용 메모리가 2,048MB guard보다 낮아 실제 parse 전에
BLOCKED_RESOURCE로 종료했다. SkillBoss Qwen3.5 Plus 합성 JSON live smoke는 성공했지만 exact 397B는 catalog에 없고 account/update metadata 결함은 공급자 수정이 필요하다. - 미검증: Evaluation Owner 공식 rubric/threshold/hidden test labels, exact on-prem
Qwen3.5-397B-A17Bregistration/completion report, 현재-run Docling parse, multi-model/ retrieval/운영 인증 품질. - 다음 작업: Owner package를 받으면
WP-03.Q2b owner-approved-gold-execution에서 승인 hash와 leakage를 확인하고 exact-model EvaluationReport를 test split에 비교한다. 그 전에는 G3 quality pass/fail을 만들지 않는다. - 관련 근거: WP-03.Q2a report, ADR-030, D-043, R-048/R-049.
- Phase / WP / Gate: P7 / WP-06.I5a / G4 Interfaces
- 작업: exact on-prem Qwen 검증 안내를 portable Wiki에 배포하고 기존 capability probe를 직관적인
axcalib verify qwen명령으로 노출하는 최소 interface slice를 착수했다. - 변경 파일: 착수 시점에는
PROJECT_STATE.md의 Active Slice, dependency Gantt, queue와 Exit Evidence만 갱신했다. - 검증: README/WORK_SPEC/GOAL/DESIGN, 기존 model capability/script/CLI contract와 Wiki publication
manifest를 대조하고
prep status/next로 Q2b Owner-input blocker를 확인했다. - 특이사항: 공식
WP-03.Q2b는 Owner rubric/threshold/hidden gold가 없어 계속blocked_policy다. 이번 slice는 품질 Gate를 우회하지 않고 기존 합성 capability 계약과 on-prem 실행 준비만 단순화한다. - 미검증: 구현, test/eval/static/Wiki validation, exact on-prem live endpoint와 실제 심사 품질.
- 다음 작업: shared Library service, CLI command, Wiki runbook과 회귀를 구현하고 별도 closeout 이력으로 결과와 다음 개발 순서를 기록한다.
- 관련 근거: 5.14 WP-06.I5a Exit Evidence, GOAL WP-05/WP-06과 기존 Qwen capability report.
- Phase / WP / Gate: P7 / WP-06.I5a → P5 / WP-05.Q3 / G4 local command parity → G3 exact-model evidence
- 상태:
wp06_i5a_verified_wp05_q3_ready - 작업: 기존 provider-independent Qwen capability를 단일 Library service로 올리고 script와
axcalib verify qwenCLI가 같은 계약을 사용하게 했다. canonicalOPENAI_*누락, non-Qwen model, exact checkpoint, text-only와 secret-free report/exit code를 명시했으며 GitHub/GitLab 공통 Wiki에 사내 설치·capability·등록심의·선택 Docling 절차를 추가했다. - 변경 파일:
src/axcalib/models/capability.py,src/axcalib/cli/, capability script와 test, EX-14 catalog,wiki/On-Prem-Qwen-Verification.md, 기준문서·workflow diagram·module board, 개발리포트와 handoff/memory bank. - 검증: targeted 22 통과. 분할 전체 test 192(unit 132, integration 39=9/24/6, contract 21), offline eval 10 groups, Ruff lint와 변경 Python format, Pyright 0 errors/0 warnings, Wiki validate/export 18/18과 CI contract, workspace validate 0/0을 통과했다. clean Rich 15 wheel 환경에서 console/module help와 canonical env 누락 exit 2를 traceback 없이 재검증했다.
- 특이사항: 기존
.venvmetadata/package의 read-only·누락 상태로uv sync가 실패해 clean wheel/venv를 별도로 사용했다. 이 과정에서 Rich 15 stderr 비호환을 찾아 수정했다. fake exact endpoint만 사용했고 SkillBoss 또는 외부 live 모델, 실제 사내 데이터는 호출하지 않았다. - 미검증: exact on-prem
Qwen3.5-397B-A17Bcapability/registration/completion, 현재-run Docling, Evaluation Owner 공식 rubric/threshold/hidden gold, Qdrant/calibration/remote operation/Web. - 다음 작업: Active Slice를
WP-05.Q3 exact-onprem-qwen-execution으로 전환한다. 사용자는 Wiki 절차를 사내 endpoint에서 실행해 secret-free JSON과 등록심의 summary를 회수하고, WP-03.Q2b는 Owner gold가 제공될 때까지 계속blocked_policy로 둔다. - 관련 근거: WP-06.I5a report, WORK_SPEC FR-063, 5.14/5.15와 On-prem Wiki guide.
- Phase / WP / Gate: P5 / WP-05.Q3 / G3 exact-model evidence
- 상태:
github_main_and_wiki_deployed - 작업: WP-06.I5a 구현·runbook commit을
origin/main에 push하고 canonicalwiki/를 GitHub Wiki에 자동 게시했다. 다음 Active Slice는 WP-05.Q3 ready 상태를 유지한다. - 변경 파일: 배포 증거를
PROJECT_STATE.md, WP-06.I5a 개발리포트, Wiki 개발 프로세스와 memory bank에 추가했다. - 검증: main local/remote가
65aeab46af2fe944a15508564a368deb943d1b08로 일치했다. GitHub Actions run30067692706의validate/publish-github2개 job이 success, annotation 0건이었다. Wiki remotemaster는8e76cd81af967d67e32e9cdb3c5f5deddd680963, 공개 On-prem Qwen page는 HTTP 200과 제목 render를 확인했다. - 특이사항: 이 증거는 GitHub publication만 확인한다. 사내 GitLab URL/runner/credential과 실제 mirror publication은 제공되지 않아 검증하지 않았다.
- 미검증: exact on-prem Qwen과 실제 등록심의/완료평가, GitLab live Wiki, Owner gold 품질.
- 다음 작업: 사내에서
wiki/On-Prem-Qwen-Verification.md를 따라 WP-05.Q3을 실행하고 secret-free 결과를 회수한다. 이후 Owner gold가 준비되면 WP-03.Q2b를 진행한다. - 관련 근거: implementation commit
65aeab4, GitHub Actions run30067692706, Wiki remote8e76cd8와 5.15 WP-05.Q3 Exit Evidence.
- Phase / WP / Gate: P3 / WP-02.Q2 / G3 provider-independent document evidence reference
- 상태:
active - 작업: Docling 하나에 고정된 optional parser 결합을 native PPTX, Docling과 향후 document-reading skill/remote adapter가 공유하는 selectable typed Port로 일반화하는 slice를 착수했다.
- 변경 파일: 착수 시점에는
PROJECT_STATE.md의 Active Slice, Exit Evidence와 queue만 갱신했다. - 검증: 기존 OOXML/sidecar extractor, Docling lazy adapter, LocalProjectService merge, runtime TOML
unknown-key guard와 script
--docling경로를 대조했다. SkillBoss live catalog에는 문서에 적힌reducto/parse가 없고document/retrieve-knowledge는 이미 추출된 text embedding만 받음을 확인했다. - 특이사항: 외부 skill은 Python package가 아니며 현재 SkillBoss catalog도 file parser를 제공하지 않으므로 가짜 direct adapter를 만들지 않는다. Core에는 provider-neutral Port를 두고 external implementation은 명시적 dependency injection·전송 승인을 요구한다.
- 미검증: 구현·회귀·Docling current-run, 외부 document parser live call과 PDF/DOCX pipeline.
- 다음 작업: source integrity를 고정한 reader registry/merge service, native/Docling selection, injected fake external guard와 config/script interface를 구현한다.
- 관련 근거: 5.16 Exit Evidence, AGENTS 3.6/5.1/5.4/5.5와 예정 ADR-031.
- Phase / WP / Gate: P3 / WP-02.Q2 / G3 provider-independent document evidence reference
- 상태:
completed_local_contract - 작업: native source-integrity 계층 뒤
DocumentReaderPort, allowlisted registry, lazy Docling, injected reader와 hash-bound manifest adapter를 구현했다. runtime TOML, two-gate script의--document-reader, legacy--docling, EX-15와 registration report provenance를 같은 Library service에 연결했다. - 변경 파일:
src/axcalib/ingest/readers.py,schemas/document.py, Docling/project/client/runtime integration, config/schema, script/example/tests, FR-064, ADR-031, D-044/R-050, README/GOAL/DESIGN, workflow/module/SVG, Wiki, 개발리포트·HANDOFF·memory-bank와 이 원장. - 검증: targeted 25 passed와 native EX-15
registration_hitl_pending; split test unit 139/integration 9+25+6/contract 21로 총 200 passed; offline eval 10 groups; schema export, Ruff, Pyright 0/0, Wiki validate/CI와prep validate통과. - 특이사항: integration 하네스 drift와 기존 public source-integrity error 의미 회귀를 검출해 각각 shard/SVG contract와 typed domain error translation으로 복구했다. reader는 frozen source의 stable copy만 받고 native/sidecar text를 덮어쓰지 않으며 external-transfer는 code-level opt-in 없이는 fail closed한다.
- 미검증: current-run Docling parse, 실제 SkillBoss/외부 document parser, manifest signer identity,
PDF/DOCX format pipeline, OCR/VLM semantic quality와 실제 사내 데이터. Qwen3.5 Plus text/vision
proxy는 통과했지만 exact
Qwen3.5-397B-A17Bidentity는 여전히 미검증이다. - 다음 작업: Active Slice를
WP-05.Q3 exact-onprem-qwen-executionready로 복귀한다. 사내 exact endpoint 결과 뒤 Owner-approved gold가 준비되면 WP-03.Q2b를 진행한다. - 관련 근거:
docs/evaluation/wp02-q2-selectable-document-reader-report.md, ADR-031, EX-15와 5.16 Exit Evidence.
새 작업이 끝날 때 다음 형식을 9절 끝에 추가하고 frontmatter의 updated_at과 last_history_id를
함께 갱신한다.
### HIST-YYYY-MM-DD-NNN
- Phase / WP / Gate:
- 상태: completed | partial | blocked | cancelled
- 작업: 구현·문서·schema 변경 요약
- 변경 파일: 핵심 경로
- 검증: 실행한 명령과 성공/실패 수치
- 특이사항: 실패, 우회, 품질 주장 경계, 사용자 결정
- 미검증: 실행하지 못한 검증과 이유
- 다음 작업: dependency, Active Slice와 목표 Gate
- 관련 근거: report/ADR/decision/risk/commit 링크
종료 전 확인:
- 현재 Phase/WP/Gate와 Active Slice가 실제 상태와 일치한다.
- Exit Evidence checkbox와 Gate Control Board를 갱신했다.
- 실제 착수·완료일 또는
TBD와 변경 이유를 기록했다. - 변경 파일과 validation/test/eval 결과를 기록했다.
- 실패·특이사항·미검증 범위를 숨기지 않았다.
- 다음 작업과 blocker/필요 승인을 기록했다.
- diagram/module 상태가 바뀌었다면 관련 문서를 함께 갱신했다.
-
last_history_id가 마지막 append-only entry와 일치한다.