You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 3c54616
Browse filesBrowse the repository at this point in the historyBrowse files
상황:
00-product-contract 전체에서 Windows Local 검사가 AppContainer로 통과해도 provisional practice에 머물렀고, curriculum top-tier 감사가 정식 authoring 승인과 별개의 미사용 review 필드를 요구했다. Astryx 여정과 release 연구 감사도 구현 완료와 실제 사람·운영 승격 조건을 한 completion 필드에 섞고 있었다.
변경:
지원 Windows NT 10.0 build 19045 이상과 windows-appcontainer 응답을 Local strong credit 조건으로 고정하고 API 응답에 isolation과 build를 전달했다. broker lifecycle 30초 여유와 UI transport 80초를 분리해 학생 코드 최대 15초 제한을 유지하면서 native 준비와 재시도를 수용했다. Fixed WebView2 matrix에 실제 Local 레슨 실행, strong 표시, SQLite local-strong event와 mixed archive 검증을 추가했다. top-tier 감사는 assessment.authoring의 승인 metadata를 canonical 계약으로 사용하며 콘텐츠 구현과 사람 공개 승격, 정식 release 운영 판정을 분리했다. 완료된 00 하위 패킷 8개와 두 parent README를 삭제하고 상위 작업 지도를 남은 09 하나로 정리했다.
영향:
지원 Windows 설치본의 Local output·behavior 검사는 AppContainer와 build 증명이 있을 때만 strong evidence를 저장한다. 일반 개발 서버 python-audit-hook과 미지원 build는 계속 practice이며 Web behavior는 localRequired를 유지한다. 사용자 E0-E3 효능, 수동 보조기술, 실제 release·telemetry는 구현 완료를 막는 TODO가 아니라 promotionEligible와 operationsEligible의 별도 조건으로 보존된다.
검증:
Fixed WebView2 native product matrix 11/11, product experience 83/83, 관련 pytest 23개, curriculum top-tier 10/10과 독립 승인 468개, evidence migration, Astryx 14 case x 2 theme, W0 strong section 12개, release/research 상태기계가 통과했다. docs, editor-build, product-quality-audit, plan-quality와 git diff --check도 통과했다.
Copy file name to clipboardExpand all lines: contracts/learning-content/README.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -11,7 +11,7 @@
11
11
-`featured-capstones.yml`: 대표 6경로의 route-backed capstone과 산출물 계약
12
12
-`owner-registry.yml`: 완료된 작업 패킷에서 승계한 안정적인 콘텐츠 owner id와 승인 row 수
13
13
14
-
`learnerEvidenceClaim: none`과 `pending-independent-evidence`는 M0 계약이 실제 사용자 효능이나 Local 졸업을 주장하지 않는다는 뜻이다. E0-E3 사용자 연구는 `docs/skills/ops/product/learning-efficacy-operations.md`와 `docs/evidence/path-efficacy/`가, Windows Local 졸업 판정은 `contracts/checkSandboxFeasibilityDecision.json`과 `mainPlan/astryx-product-experience/00-product-contract/01-prd-improvement-loop/09-learning-quality-revalidation/`이 소유한다.
14
+
`learnerEvidenceClaim: none`과 `pending-independent-evidence`는 M0 계약이 실제 사용자 효능을 주장하지 않는다는 뜻이다. E0-E3 사용자 연구는 `docs/skills/ops/product/learning-efficacy-operations.md`와 `docs/evidence/path-efficacy/`가 소유한다. Windows Local strong 졸업 판정은 `contracts/checkSandboxFeasibilityDecision.json`, `launcher-test`, `product-browser-webview2-fixed`가 소유한다.
Copy file name to clipboardExpand all lines: docs/skills/architecture/learning-experience.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -53,7 +53,7 @@ provider는 deterministic feedback 뒤 사용자가 요청할 때만 열고, 연
53
53
54
54
`noError`와 `contains`는 weak evidence다. 설명용 feedback에는 쓸 수 있지만 completion, mastery, transfer, retrieval credit을 단독으로 만들지 않는다. structured strong kind는 `output`, `variable`, `file`, `table`, `image`, `behavior`다.
55
55
56
-
현재 browser release subset은 `output`과 `variable`이다. browser strong check는 main 학습 kernel과 분리된 새 pyproc Worker에서 실행한다. `behavior`와 OS capability가 필요한 검사는 `localRequired`다. Local strong completion은 지원 OS의 launcher broker와 `contracts/checkSandboxFeasibilityDecision.json` 판정을 따라야 하며 일반 subprocess로 강등하지 않는다.
56
+
현재 browser release subset은 `output`과 `variable`이다. browser strong check는 main 학습 kernel과 분리된 새 pyproc Worker에서 실행한다. `behavior`와 OS capability가 필요한 검사는 `localRequired`다. Local strong completion은 지원 OS의 launcher broker와 `contracts/checkSandboxFeasibilityDecision.json` 판정을 따라야 한다. 응답의 AppContainer isolation과 지원 Windows build가 확인되지 않은 일반 subprocess 결과는 practice로 유지한다.
57
57
58
58
artifact evidence는 상대 경로, media type, size, SHA-256 content hash와 type별 의미 필드를 저장한다. table은 format, columns, row count를, image는 실제 header의 media type, width, height를 포함한다. 실제 사용자 파일, 외부 사이트와 nondeterministic retry를 강검증 fixture에 사용하지 않는다.
-`uv run python -X utf8 tests/run.py gate learning-evidence-contract`
95
95
-`uv run python -X utf8 tests/run.py gate removed-learning-concepts`
96
96
97
-
레슨별 저작 품질, 472개 전수 source evidence, 31개 path ledger와 독립 assessment 승인은 `contracts/learning-content/`가 영구 회귀 계약으로 소유한다. Windows Local sandbox 졸업 판정은 `contracts/checkSandboxFeasibilityDecision.json`과 learning quality revalidation이 소유하고, 사용자 학습성 근거는 `docs/skills/ops/product/learning-efficacy-operations.md`와 `docs/evidence/path-efficacy/`가 경로별 공개 승격 조건으로 소유한다. 이 조건은 학습 방법 구현의 중복 TODO가 아니라 M0 콘텐츠 계약과 공개 효능 승격의 경계다.
97
+
레슨별 저작 품질, 472개 전수 source evidence, 31개 path ledger와 독립 assessment 승인은 `contracts/learning-content/`가 영구 회귀 계약으로 소유한다. Windows Local sandbox 졸업 판정은 `contracts/checkSandboxFeasibilityDecision.json`, `launcher-test`, `product-browser-webview2-fixed`가 소유하고, 사용자 학습성 근거는 `docs/skills/ops/product/learning-efficacy-operations.md`와 `docs/evidence/path-efficacy/`가 경로별 공개 승격 조건으로 소유한다. 이 조건은 학습 방법 구현의 중복 TODO가 아니라 M0 콘텐츠 계약과 공개 효능 승격의 경계다.
Copy file name to clipboardExpand all lines: docs/skills/architecture/learning-yaml-contract.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -98,7 +98,7 @@ check:
98
98
normalization: trim-final-newline
99
99
```
100
100
101
-
fixture hash는 key를 정렬한 compact JSON UTF-8 bytes의 SHA-256 SRI다. author gate가 hash를 다시 계산하므로 임의 문자열을 넣어 통과시킬 수 없다. `contracts/checkSandboxFeasibilityDecision.json`이 Web과 Local의 실행 가능 evidence를 함께 결정한다. Web `output`·직렬화 `variable`만 fresh pyproc Worker와 processWorker graph SRI, fixture hash, timeout, teardown을 통과하면 strong 후보가 되며 `behavior`는 Worker boot 전에 `localRequired`로 끝난다. Local `local-sandbox`는 같은 behavior spec을 별도 native Python 자식 프로세스에서 실행한다. Windows launcher 경로는 managed runtime·worker를 tree hash와 active release로 고정하고 AppContainer capability 0, Job Object, handle allowlist, HMAC named pipe, 실행별 ACL receipt v2로 fixture 밖 읽기, network와 child process를 OS 경계에서도 거부한다. 공유 DACL mutex는 동시 grant·revoke를 직렬화하며 회수 실패 receipt/profile은 다음 launcher 시작이 stale run으로 GC한다. Local package asset은 설치본 `CODARO_WEB_BUILD_ROOT`의 pinned wheel만 사용하고 cold 병렬 검사도 캐시를 만들지 않는다. 다만 목표 Windows 10 22H2 설치본 conformance가 없으므로 결과를 practice 피드백으로만 제공하고 strong evidence를 append하지 않는다. behavior 판정은 file·directory·table·image descriptor와 package SRI를 계속 계산하지만 release conformance 전에는 공용 evidence payload로 승격하지 않는다. 임의 원격 URL이나 최신 버전 즉석 설치는 strong evidence에 사용할 수 없다.
101
+
fixture hash는 key를 정렬한 compact JSON UTF-8 bytes의 SHA-256 SRI다. author gate가 hash를 다시 계산하므로 임의 문자열을 넣어 통과시킬 수 없다. `contracts/checkSandboxFeasibilityDecision.json`이 Web과 Local의 실행 가능 evidence를 함께 결정한다. Web `output`·직렬화 `variable`만 fresh pyproc Worker와 processWorker graph SRI, fixture hash, timeout, teardown을 통과하면 strong 후보가 되며 `behavior`는 Worker boot 전에 `localRequired`로 끝난다. Local `local-sandbox`는 같은 behavior spec을 별도 native Python 자식 프로세스에서 실행한다. Windows launcher 경로는 managed runtime·worker를 tree hash와 active release로 고정하고 AppContainer capability 0, Job Object, handle allowlist, HMAC named pipe, 실행별 ACL receipt v2로 fixture 밖 읽기, network와 child process를 OS 경계에서도 거부한다. 공유 DACL mutex는 동시 grant·revoke를 직렬화하며 회수 실패 receipt/profile은 다음 launcher 시작이 stale run으로 GC한다. Local package asset은 설치본 `CODARO_WEB_BUILD_ROOT`의 pinned wheel만 사용하고 cold 병렬 검사도 캐시를 만들지 않는다. Local 결과는 계약이 지원하는 Windows NT 10.0 build 19045 이상에서 응답의 `isolation=windows-appcontainer`와 실제 build 번호가 함께 확인된 경우에만 strong evidence로 append한다. 일반 개발 서버의 `python-audit-hook` 결과와 더 오래된 Windows 결과는 같은 판정을 통과해도 practice 피드백에만 사용한다. 임의 원격 URL이나 최신 버전 즉석 설치는 strong evidence에 사용할 수 없다.
102
102
103
103
강한 pass는 raw source/output이 아니라 source/result/expected hash, check/fixture ID, canonical lessonRef와 실제 runtime tier를 append-only event로 저장한다. Web은 `runtimeTier: web`과 `web-strong:<fingerprint>`, Local native 검사는 `runtimeTier: local`과 `local-strong:<fingerprint>`를 사용하며 fingerprint에도 tier를 넣어 같은 source의 서로 다른 실행을 충돌로 오해하지 않는다. archive manifest는 event 집합에 따라 `web`, `local`, `mixed`를 기록한다. JSON archive의 canonical event bytes, event-set hash, 개별 payload hash가 모두 맞아야 import할 수 있다. Web은 IndexedDB v3의 metadata header와 evidence store를, Local은 별도 SQLite transaction과 sidecar header를 사용한다. 두 tier 모두 schema/data epoch와 minimum reader floor를 검사한 뒤 `eventId` set union을 수행하고 동일 ID의 다른 payload는 원본을 덮어쓰지 않고 conflicts store에 격리한다. 이전 `web-evidence:` archive ID와 category-scoped legacy lesson alias는 검증 뒤 현재 identity로 이관한다. 이 event archive import는 `progress.json`, lesson completion, outcome credit을 수정하지 않는다. Local behavior artifact descriptor와 pinned package asset descriptor는 봉인됐지만 notebook/document, draft, 전체 virtual FS artifact와 package set archive가 포함되기 전에는 전체 Web-to-Local 학습 archive로 부르지 않는다.
- due 여부를 확인하거나 문제를 펼치는 별도 버튼을 만들지 않는다. route 진입과 evidence 갱신 시 queue가 자동 재계산된다.
113
113
- transfer 또는 retrieval strong event가 저장되면 같은 check ID의 due 카드는 queue에서 빠진다.
114
114
- variant 배열이 존재하거나 ID가 생성됐다는 사실은 학습 evidence가 아니다. strong executor 실제 통과와 append-only event가 있어야 실행 증거로 계산한다.
115
-
- 현재 machine audit의 source 저작 범위는 strong CheckSpec 1,419개/468레슨이며 mastery·transfer·24시간 retrieval은 각각 468레슨이다. 1,402개 assessment solution은 1,400개 behavior와 2개 output 검증으로 실행됐고 실패는 0이다. 이것은 author source 검산이며 제품 strong evidence 지원 범위와 다르다. Web behavior는 `localRequired`, Local native behavior는 provisional practice이고 둘 다 strong event 0이다. Web Day 1 output strong event와 legacy migration event 2건은 Local import·재내보내기·Web reload 뒤에도 Web runtime identity를 유지한다. AppContainer broker source, 공유 ACL 회수와 cold package 경합을 포함한 현재 Windows 11 직접 경계 검증과 설치형 WebView2의 Web-origin archive Local import·reload·re-export는 green이다. 그래도 전부의 `independentReview`는 pending이고 승인 수는 0이며 목표 Windows 10 설치본 conformance, 실제 공개 Web export에서 시작하는 Web-to-Local-to-Web round trip과 독립 author review가 없으므로 전체 scheduler 또는 mastery 완료로 부르지 않는다.
115
+
- 현재 machine audit의 source 저작 범위는 strong CheckSpec 1,419개/468레슨이며 mastery·transfer·24시간 retrieval은 각각 468레슨이다. 1,402개 assessment solution은 1,400개 behavior와 2개 output 검증으로 실행됐고 실패는 0이다. 이것은 author source 검산이며 제품 strong evidence 지원 범위와 다르다. Web behavior는 `localRequired`로 strong event 0을 유지한다. 일반 개발 서버의 Local behavior는 practice로 남지만, 설치형 WebView2에서는 AppContainer 응답과 지원 Windows build를 확인한 뒤 Local strong event를 실제 SQLite에 저장한다. Fixed Version release gate가 이 UI 저장 경로와 broker 경계, 공유 ACL 회수, cold package 경합을 한 설치본에서 검사한다. Web Day 1 strong event와 legacy migration event는 Local import·재내보내기·Web reload 뒤에도 원래 runtime identity를 유지한다. 사람 효능 근거는 전체 scheduler 구현 완료가 아니라 경로별 공개 승격 상태를 결정한다.
116
116
- delayed retrieval은 `occurredAt` 표시 시각만으로 열지 않는다. canonical `CreditGranted`의 `evidenceTime`과 최초 `appendReceiptAt`이 모두 최소·최대 window를 만족해야 하며, 둘의 경과 차이가 5분을 넘거나 어느 시간축이 역행하면 `ClockAnomaly`를 기록하고 credit을 `deferredCreditEventIds`에 둔다. 이때 outcome은 `reviewDue`로 남아 새 retrieval을 요구한다. archive import는 원래 두 시각을 보존하고 `MigrationImported.occurredAt`만으로 projection clock을 전진시키지 않는다.
0 commit comments