Skip to content

registry: MIP-1 부속서 A 값 반영 + 1조 상태 표시 (가결 시 병합) - #22

Merged
mikim merged 2 commits into
mainfrom
registry/mip1-annex-a
Sep 2, 2026
Merged

registry: MIP-1 부속서 A 값 반영 + 1조 상태 표시 (가결 시 병합)#22
mikim merged 2 commits into
mainfrom
registry/mip1-annex-a

Conversation

@mikim

@mikim mikim commented Aug 23, 2026

Copy link
Copy Markdown
Contributor

Assurance policy change: Four gated edits, all consequences of the owner decisions of 2026-08-23 recorded in this PR — nothing accepted on the owner's behalf (PROFILE.md §15). (1) CLAIM-PASSPORT-002's evidence list of Passport-eligible entries is rewritten from 11 to 10: algora's eligibility is withdrawn on archival (MIP-1 Annex A Archive; owner decision that an ended service should not back new Passport stamps). The constraint machinery is untouched and still enforced — the validator output below shows "10 Passport-eligible, all owned by Mossland". (2)(3) INV-LIFECYCLE-001 and INV-LIFECYCLE-002 each have one limitation rewritten: "holds vacuously — no entry classified yet" was true at PR #21 and is false after this PR applies the values, so the limitations now state the actual remaining gap (no core entry yet; Art. 3 exceptions in active use). (4) RES-LIFECYCLE-001 moves OPEN → RESOLVED with a resolution note that names the remaining human act (designating named individual maintainers to promote the five Core candidates); resolving it is the purpose of this PR, not a tidy-up.

Important

Draft on purpose — merge on MIP-1 ratification. 투표 마감 2026-09-02T02:19:25Z. 가결 확인 후 ready-for-review로 전환해 병합하면 14일 이행 창(~9/16) 안에 들어갑니다. 부결 시 이 PR은 닫습니다(스키마·검증기는 #21로 이미 본선에 있고 값이 없으면 아무것도 강제하지 않으므로 되돌릴 것이 없습니다).

Summary

PR #21이 만든 스키마에 값을 채우고, MIP-1 1조의 표시 의무를 구현합니다. 2026-08-23 owner 결정 4건을 그대로 반영했습니다: ① 부속서 A 매핑 채택, ② Core 후보 5개는 부속서 A 자체 규칙대로 Beta 게시(3조 예외 기록), ③ signal은 Lab, ④ algora는 Archive + Passport 자격 회수.

Non-goals: rubric 의미 변경(없음 — 1.1.0 그대로), probe/모니터링(별도 owner 안건 유지), 개인 담당자 실명 기재(핸들·조직만).

적용된 분류 (17개)

lifecycle 서비스 비고
beta ×8 moss · disclosure · links · agora · passport 부속서 A Core 후보 — 부담당자 미지정이라 부속서 A 명문대로 Beta 게시. 3조 예외 사유를 각 entry에 기록, maintainer는 MosslandOpenDevs(개인 지정 시 Core 승격)
signalmap Core 지향 — 승격 조건을 lifecycleReason에 기록(부속서 A 지시)
alpha · wa 부속서 A Beta
lab ×7 ao · bridge · monitor · city · npc · recipe 부속서 A Lab
signal 부속서 A 미기재(안건 작성 후 등록) — owner 결정으로 Lab
archive ×2 media SignalMap 흡수(2026-08-21), 기록 보존
algora passportEligible true→false, stampType/stampClass null — eligible 11→10

범위 밖 13개(거래소·채널·자료·GitHub 조직)는 lifecycle 없음 — 1조 범위 그대로.

1조 표시 구현

칩과 동일한 단일 선언 원칙: 표시가 전부 rubric.lifecycle에서 파생되므로 정책·검사·화면이 한 객체입니다.

  • 카드 — 도메인 줄에 상태 마커: passport.moss.land Beta (aria: Beta · 운영 중, 변동 가능)
  • 범례 — 기존 legend에 lifecycle 4행 추가(상태·의미·약속, rubric.lifecycle.states의 ko/promiseKo 그대로)
  • llms.txt — entry별 (lifecycle: …) + MIP-1 설명 1줄
  • README — 이 저장소 자신의 상태 줄(Lifecycle: Beta) — 1조의 "저장소 README" 측
  • 데이터 가드: lifecycle 값이 하나도 없으면 마커·범례·제목 문구·llms 설명 줄이 전부 렌더링되지 않습니다. 실측(6c85ed2): registry: MIP-1 생명주기 정책을 강제 가능한 스키마 계약으로 도입 #21 병합 시점의 값 없는 registry를 이 생성기에 통과시키면 llms.txt·sitemap.xml은 바이트 동일, index/embed는 아무 요소와도 매칭되지 않는 비활성 .lc CSS 규칙 21줄만 다릅니다 — 보이는 출력 변화 0

rubricVersion 무변경(1.1.0): 축과 의미는 1.1.0에서 이미 선언됐고, 이번엔 렌더링이 선언을 따라잡은 것. 기존 entry의 의미 변화 없음.

문서 레벨

  • version 1.0.0 → 1.1.0 (내용 변경), lifecycleReviewedAt 최초 설정 — 이 분류 행위가 4조의 1차 검토
  • generatedAt 유지 — 전 링크 재검증을 하지 않았으므로 최종 확인 날짜를 올리지 않음

검증 (6c85ed2)

$ python .github/scripts/validate-registry.py
OK: 30 services validate against ecosystem-registry.schema.json; 10 Passport-eligible,
all owned by Mossland; ids unique; rubric v1.1.0 consistent (7 chips declared);
17 services carry a MIP-1 lifecycle, all satisfying it.

$ python .github/scripts/test-lifecycle-rules.py
OK: 8 lifecycle cases plus the guard proof behaved as specified.

$ node build/generate.mjs && git diff --exit-code -- index.html embed.html llms.txt sitemap.xml
(clean — committed output byte-identical)

네거티브 테스트는 값 반영에 맞춰 갱신: 각 뮤테이션이 entry의 실제 lifecycle 필드를 먼저 걷어낸 뒤 위반을 주입합니다 — 안 그러면 "사유 없는 beta" 케이스가 이미 사유를 가진 entry를 변형해 아무것도 검사하지 않게 됩니다. 렌더링은 DOM 검증으로 확인(카드 토큰 15개, 범례 4행, Algora Archive 표시).

Affected assurance IDs

  • RESOLVED: RES-LIFECYCLE-001 (잔여 과제 — Core 후보 5개의 개인 담당자 지정 — 을 resolution note에 기록)
  • 갱신: INV-LIFECYCLE-001, INV-LIFECYCLE-002 (limitation 현행화), CLAIM-PASSPORT-002 (evidence 11→10), SYSTEM.md §3/§9, EV-LIFECYCLE-001 (2차 캡처)
  • 무변경: SYSTEM.md §2 non-goals, rubric/RUBRIC.md

Change classification

  • Behavioral — 렌더링 출력 변경(lifecycle 마커·범례·llms.txt)
  • Data-semantics — 분류 값 적용, algora Passport 자격 회수

Residual impact

  • Residuals resolved — RES-LIFECYCLE-001

Completion checklist

  • Registry change and regenerated output committed together
  • Enforcement present for affected invariants (schema allOf + validator + CI 네거티브 테스트, 이제 실제 값 위에서 작동)
  • Evidence bound to a revision — 6c85ed2
  • Durable assurance artifacts updated
  • Public disclosure reviewed — 담당자는 조직 핸들만, 실명·이메일 없음

mikim and others added 2 commits August 23, 2026 15:29
Applies the classification the schema (PR #21) was built to hold, per owner
decisions of 2026-08-23. Held for merge until MIP-1's vote closes (2026-09-02);
landing then falls inside the policy's 14-day implementation window.

Values (17 in-scope services — 8 beta / 7 lab / 2 archive):
  beta     moss disclosure links agora passport   Annex A Core candidates,
           published as Beta per Annex A's own unstaffed rule; Art. 3 exception
           recorded per entry, maintainer MosslandOpenDevs until named
           individuals with deploy/recovery rights are designated
  beta     signalmap (Core-track, promotion condition recorded) alpha wa
  lab      ao bridge monitor city npc recipe signal (signal absent from
           Annex A — classified by owner decision)
  archive  media (absorbed into SignalMap 2026-08-21)
           algora (passportEligible withdrawn on archival by owner decision:
           an ended service should not back new Passport stamps — eligible
           count 11 -> 10, stampType/stampClass null)

Display (MIP-1 Art. 1): the generator now renders the state — a marker in each
card's domain line, a lifecycle legend, and a per-entry note in llms.txt — all
derived from rubric.lifecycle, the same single-declaration arrangement the
chips use, so the rendered vocabulary cannot drift from the policy. This
repository's own README carries its state line (Beta), covering Art. 1's
repository side. No rubricVersion bump: the axis and its meanings were declared
in 1.1.0; rendering catches up with the declaration.

Document: version 1.0.0 -> 1.1.0; lifecycleReviewedAt set — the initial
classification is the first Art. 4 review. generatedAt untouched (no full link
re-verification happened here).

The committed negative test now strips an entry's real lifecycle fields before
injecting each violation — otherwise "beta with no reason" would mutate an
entry that legitimately carries a reason and silently stop testing anything.
8/8 cases plus the guard proof still pass; the guard case reports 65 errors
across the 13 out-of-scope entries when the required:["lifecycle"] guard is
removed.

RES-LIFECYCLE-001 RESOLVED with the remaining human act recorded: promoting
the five Core candidates out of the Art. 3 exception needs named individual
maintainers. INV-LIFECYCLE-001/002 limitations updated to match;
CLAIM-PASSPORT-002 evidence updated for the withdrawn algora.

Verified at this commit: validate-registry.py OK (30 services, 10 eligible,
17 classified all satisfying), test-lifecycle-rules.py 8/8 + guard, generator
idempotent (committed output byte-identical to a fresh run).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The legend summary and the llms.txt lifecycle note were emitted unconditionally.
With a value-less registry that is wrong twice: the page advertises "Chips &
lifecycle" with no lifecycle rows under it, and llms.txt explains states that
nothing carries. Both now key off the same guard as the markers and legend rows.

Proof, generated from the merged #21 registry (rules present, no values) through
this generator: llms.txt and sitemap.xml byte-identical to the committed output;
index/embed differ only by the 21 inert .lc CSS lines, which match no element.
With the applied values the committed output is byte-identical to a fresh run.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@mikim
mikim marked this pull request as ready for review September 2, 2026 04:40
@mikim
mikim merged commit e11f1c9 into main Sep 2, 2026
11 checks passed
mossland pushed a commit to mossland/Disclosure-and-Materials that referenced this pull request Sep 2, 2026
MIP-1 (Agora, 2026-08-19 11:19 ~ 2026-09-02 11:19 KST) 가결 공시. 찬성 100% ·
108,988.96676301 MOC · 2명, snapshot block 25,786,120. 4개 조항 비준, 부속서 A 최초
분류 적용 — links.moss.land registry v1.1.0 (Beta 8 · Lab 7 · Archive 2 · Core 0,
MosslandOpenDevs/links#22 e11f1c9) 반영 완료.

증빙(같은 커밋): proposal.json, votes.json(EIP-712 서명), transparency.json,
ecosystem-registry.json, fetch-metadata.json, SHA256SUMS.txt.

README: 공시 목록(EN/KO)에 항목 추가, MIP-1 제1조에 따른 이 저장소의 상태줄
(Lifecycle: Beta, registry entry `disclosure`) 추가.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant