Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
72 commits
Select commit Hold shift + click to select a range
bd109e6
test(docs): expose post-547 commercial authority drift
seonghobae Sep 8, 2026
80473dd
test(docs): require current active commercial lanes
seonghobae Sep 8, 2026
eeab6f7
docs: refresh commercial gap authority after #547
seonghobae Sep 8, 2026
6b1e664
test: advance patch-validator candidate authority
seonghobae Sep 8, 2026
b7de38b
test: reject superseded patch-validator candidate
seonghobae Sep 8, 2026
49ca12d
docs: refresh patch-validator exact authority
seonghobae Sep 8, 2026
1430f8b
test: require current #535 commercial authority
seonghobae Sep 8, 2026
56000ad
docs: repair current commercial authority after hosted RED
seonghobae Sep 8, 2026
6485b5a
chore(pr559): converge documentation lane on protected #558 truth
seonghobae Sep 8, 2026
75270e6
test(docs): require live post-558 commercial authority
seonghobae Sep 8, 2026
3f4b9a1
docs(gap): repair post-558 live commercial authority
seonghobae Sep 8, 2026
94bde81
test(docs): require latest observed #556 authority
seonghobae Sep 8, 2026
0951683
docs(gap): record live #556 successor and hosted RED
seonghobae Sep 8, 2026
f7c4542
test(docs): require current #535 endpoint-repair authority
seonghobae Sep 8, 2026
8f5fdee
docs: track current #535 gateway endpoint repair
seonghobae Sep 8, 2026
06e635c
test(docs): require #535 coverage-repair authority
seonghobae Sep 8, 2026
53be218
docs: track #535 coverage-gate repair
seonghobae Sep 8, 2026
3a50038
test(docs): require current central control-plane snapshot
seonghobae Sep 8, 2026
352fe71
docs: refresh central control-plane snapshot
seonghobae Sep 8, 2026
27e18bf
test(docs): retire stale commercial authority assertions
seonghobae Sep 8, 2026
737b71c
Converge commercial baseline onto protected #535 integration
seonghobae Sep 8, 2026
f3fb518
docs: refresh protected and claim-evidence authority
seonghobae Sep 8, 2026
adc9038
test(docs): track protected #535 integration
seonghobae Sep 8, 2026
bab98b4
test(docs): track current claim-evidence head
seonghobae Sep 8, 2026
d159e24
test(docs): bind post-535 protected authority
seonghobae Sep 8, 2026
da179c9
test(docs): refresh current candidate contract
seonghobae Sep 8, 2026
08c16e5
test(docs): align claim-binding authority wording
seonghobae Sep 8, 2026
44d2050
docs: refresh claim-evidence candidate authority
seonghobae Sep 8, 2026
9c14c4e
test(docs): match hosted run authority casing
seonghobae Sep 8, 2026
3f12203
docs: refresh live Noema commercial authority
seonghobae Sep 8, 2026
aec88cc
test(docs): track current Noema feature authority
seonghobae Sep 8, 2026
16e006c
test(docs): bind commercial gap to live feature heads
seonghobae Sep 8, 2026
e865928
test(docs): require settled external-extension authority
seonghobae Sep 8, 2026
595f1f7
docs: converge commercial gap to current plugin admission
seonghobae Sep 8, 2026
e5bcc30
test(docs): track active policy-approval RED
seonghobae Sep 8, 2026
6046c66
docs: bind commercial gap to policy-approval RED
seonghobae Sep 8, 2026
68dc9fb
docs: converge commercial authority after #556 integration
seonghobae Sep 8, 2026
104a413
docs: restore durable commercial gap owners
seonghobae Sep 8, 2026
9a66410
docs: align external-extension authority after restack
seonghobae Sep 8, 2026
2b7aee2
test: bind documentation authority to restacked #560
seonghobae Sep 8, 2026
f68a069
test(d(docs): require complete gap authority schema
seonghobae Sep 8, 2026
dee8e8d
docs: bind gap status to architecture authorities
seonghobae Sep 8, 2026
418c7d1
test(docs): reject stale tool-capability candidate
seonghobae Sep 8, 2026
6f7a0ce
docs: refresh current tool-capability evidence
seonghobae Sep 8, 2026
e9f9cb3
docs: refresh active extension authority
seonghobae Sep 8, 2026
173b411
docs: bind extension event chronology evidence
seonghobae Sep 8, 2026
1386077
docs: refresh extension chronology authority
seonghobae Sep 8, 2026
8875421
docs: bind gap baseline to hostile admission repair
seonghobae Sep 8, 2026
d4e7e4b
test(docs): bind live candidate to admission repair
seonghobae Sep 8, 2026
8341cab
test(docs): preserve candidate ADR authority wording
seonghobae Sep 8, 2026
b65eb4a
docs: refresh external-extension runtime-time authority
seonghobae Sep 8, 2026
6a68961
test(docs): bind current runtime-time candidate authority
seonghobae Sep 8, 2026
1a9522b
test(docs): refresh live external-extension candidate authority
seonghobae Sep 8, 2026
e13419f
docs: bind gap authority to invocation replay repair
seonghobae Sep 8, 2026
4e5dabd
docs: converge on public replay authority repair
seonghobae Sep 8, 2026
e085d72
docs: converge on activation revocation repair
seonghobae Sep 8, 2026
9bbbb23
docs: converge on admission-bound invocation authority
seonghobae Sep 8, 2026
95c44bc
docs: bind commercial gap to exact admission provenance
seonghobae Sep 8, 2026
458d826
test(docs): require exact-admission candidate authority
seonghobae Sep 8, 2026
4b6f4f4
test(docs): bind candidate contract to exact admission
seonghobae Sep 8, 2026
f4807d7
docs: track crypto-provider RED authority
seonghobae Sep 8, 2026
a1929bb
test(docs): bind external-extension authority to Web Crypto repair
seonghobae Sep 8, 2026
ec5b176
docs: converge external-extension Web Crypto authority
seonghobae Sep 8, 2026
fd71701
test(docs): follow current external-extension authority
seonghobae Sep 8, 2026
60d3379
test(docs): assert public receipt binding authority
seonghobae Sep 8, 2026
686f11b
test(docs): match activation revocation authority wording
seonghobae Sep 8, 2026
be52bc5
chore(docs): non-force reconverge after #560 integration
seonghobae Sep 9, 2026
448b043
docs: converge baseline after #560 protected integration
seonghobae Sep 9, 2026
855bbf5
test: bind documentation authority to #560 integration
seonghobae Sep 9, 2026
c8e5e6f
test: treat external-extension admission as protected history
seonghobae Sep 9, 2026
a09dde4
test: extend protected integration history through #560
seonghobae Sep 9, 2026
4b3bdfd
test: move external-extension gap to lifecycle successor
seonghobae Sep 9, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
94 changes: 44 additions & 50 deletions docs/product-technical-gap-baseline.md

Large diffs are not rendered by default.

11 changes: 10 additions & 1 deletion test/documentation-architecture-contract.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -79,8 +79,17 @@ describe("authoritative Noema documentation graph", () => {
expect(productGap).toContain(owner);
}
expect(productGap).toContain(
"| Priority | Gap | Buyer/operator impact | Current owner | Authoritative completion evidence | Next executable action |",
"| Priority | Gap | Buyer/operator impact | Current owner | Status | Authoritative completion evidence | Next executable action |",
);
for (const authorityDocument of [
"docs/PRD.md",
"docs/TRD.md",
"docs/UML.md",
"docs/ERD.md",
"docs/CONTEXT_MAP.md",
]) {
expect(productGap).toContain(`\`${authorityDocument}\``);
}
expect(productGap).toContain("issues #29 / #227");
for (const staleOwner of ["PR #407", "PR #67", "Active PR #426"]) {
expect(gapAudit).not.toContain(staleOwner);
Expand Down
18 changes: 8 additions & 10 deletions test/documentation-current-trust-authority.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,16 @@ import { readFileSync } from "node:fs";
import { describe, expect, it } from "vitest";

describe("current protected trust authority documentation", () => {
it("separates construction snapshots, live-read moving heads, and immutable reviewed pins", () => {
it("separates current protected source, moving central head, and immutable pin", () => {
const baseline = readFileSync("docs/product-technical-gap-baseline.md", "utf8");

expect(baseline).toContain("protected `main@099d7d89a51bca4a2cf7c6b285b50ffadd08d001`");
expect(baseline).toContain("central `.github/main@78a4937c684a54ca8e415822c913742f41c6efc4`");
expect(baseline).toContain("protected `main@e3aa77c3f678336c548440f355f988345b0ba976`");
expect(baseline).toContain("central `.github/main@7fd571dbcdbae6acf29d8f4ee704d7ba6297e4db`");
expect(baseline).toContain("`ALLOWED_WORKFLOW_SHA = c9052e607e5f3cc76e73207e7786b21500721b79`");
expect(baseline).toContain("merged PR #542 exact `ca839298fcaeec409091dc909789b6f87eb67fdc`");
expect(baseline).toContain("merged PR #540 exact `05bc2d47c3899ebe17538070f9a30172f90307ac`");
expect(baseline).toContain("Current protected source identity는 mutation·merge·release 직전에 live-read한다");
expect(baseline).toContain("Moving central main과 reviewed immutable consumer source identity를 같은 권위로 취급하지 않는다");
expect(baseline).not.toContain("protected `main@d6394b2aa73e6fc57fccdad74ea38ad87f79e7f8`");
expect(baseline).not.toContain("protected `main@e6de53a1c2902cddc09e77a58efb82420cd8f5db`");
expect(baseline).not.toContain("Central workflow authority는 `.github/main@c9052e607e5f3cc76e73207e7786b21500721b79`다.");
expect(baseline).toContain("Current source SHA는 moving observation이며 future merge 뒤 evergreen identity로 취급하지 않는다");
expect(baseline).toContain("Moving foreign head와 reviewed immutable pin을 같은 권위로 취급하지 않으며");
expect(baseline).toContain("merged PR #560 exact `5aab7c098f3478069127f34e398326415ec599a4`");
expect(baseline).not.toContain("protected `main@36e5cf957ee20a8bb3e19ff50fea6c97771d2ba1`다");
expect(baseline).not.toContain("central `.github/main@78a4937c684a54ca8e415822c913742f41c6efc4`");
});
});
26 changes: 16 additions & 10 deletions test/documentation-live-open-pr-authority.test.ts
Original file line number Diff line number Diff line change
@@ -1,17 +1,23 @@
import { readFileSync } from "node:fs";
import { describe, expect, it } from "vitest";

describe("product-technical gap baseline live open-PR authority", () => {
it("separates active source lanes from integrated protected history and observation-scoped downstream heads", () => {
describe("product-technical gap baseline live source authority", () => {
it("treats #560 as integrated protected history without promoting downstream completion", () => {
const baseline = readFileSync("docs/product-technical-gap-baseline.md", "utf8");

expect(baseline).toContain("PR #535 exact `e996b509f699c3f942ef81f0ac52b804b783cd19`");
expect(baseline).toContain("merged PR #540 exact `05bc2d47c3899ebe17538070f9a30172f90307ac`");
expect(baseline).toContain("observed PR #556 exact `fecb03d9c632f90f290f921c1d6e90ce86ca5305`");
expect(baseline).toContain("live #556 must be re-fetched before integration");
expect(baseline).toContain("issue #555 / PR #556");
expect(baseline).not.toContain("PR #535 exact `59205b5ae333a1f2b5e6b2112bf059592ba492c9`");
expect(baseline).not.toContain("PR #535 exact `4ad6907ae9f97b202a32a9b5e170f275ac9129b9`");
expect(baseline).not.toContain("PR #540은 아직 merge authority가 아니다");
expect(baseline).toContain("Integrated external-extension admission — issue #545 / merged PR #560");
expect(baseline).toContain("PR #560 exact `5aab7c098f3478069127f34e398326415ec599a4`");
expect(baseline).toContain("Resulting protected merge는 GitHub-verified `e3aa77c3f678336c548440f355f988345b0ba976`");
expect(baseline).toContain("application CI `34289599257`");
expect(baseline).toContain("patch-validator-image `34289599248`");
expect(baseline).toContain("Policy / Approval issuance");
expect(baseline).toContain("Runtime-current authority RED `4be371ec08b852f4d00829ba5aa6936df6564b5e`");
expect(baseline).toContain("Replay semantic RED `cb8ad638875b761aea70aba78a480bd5031c4d7d`");
expect(baseline).toContain("Exact-admission provenance RED `0a32ee0a88378931a07b7e3b61cc31e3b494a7ab`");
expect(baseline).toContain("Worker Web Crypto `crypto.subtle.digest(\"SHA-256\", ...)`");
expect(baseline).toContain("durable append-only lifecycle evidence");
expect(baseline).toContain("ordinary/non-force");
expect(baseline).not.toContain("## Active external-extension candidate");
expect(baseline).not.toContain("PR #560의 ADR 0015는 candidate-only");
});
});
26 changes: 12 additions & 14 deletions test/documentation-post-trust-integration-authority.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,26 +2,24 @@ import { readFileSync } from "node:fs";
import { describe, expect, it } from "vitest";

describe("post-trust-integration documentation authority", () => {
it("binds commercial-gap construction evidence to protected integrations without freezing moving heads", () => {
it("binds commercial gaps to protected integrations without freezing moving heads", () => {
const baseline = readFileSync("docs/product-technical-gap-baseline.md", "utf8");

for (const protectedHistory of [
"protected `main@099d7d89a51bca4a2cf7c6b285b50ffadd08d001`",
"merged PR #536 exact `4fe6fe84611dfa1d69d8e0712b72b278429524d0`",
"merged PR #548 exact `fb44888bd571cae61dbfc93c1b46675855fbfc9c`",
for (const integrated of [
"merged PR #535 exact `82b20b293f0a5f0ac0e69857c1b61dddfe478491`",
"merged PR #540 exact `05bc2d47c3899ebe17538070f9a30172f90307ac`",
"merged PR #542 exact `ca839298fcaeec409091dc909789b6f87eb67fdc`",
"merged PR #547 exact `30b7e7e5cdab8de65715834a16f994b2047eafa6`",
"merged PR #550 exact `f2ec2dc6709814070cc3e3d6932ce280aee966db`",
"merged PR #553 exact `3bd9f543e97ce856f78b1c608141436298ce9e74`",
"merged PR #542 exact `ca839298fcaeec409091dc909789b6f87eb67fdc`",
"merged PR #540 exact `05bc2d47c3899ebe17538070f9a30172f90307ac`",
"central `.github/main@78a4937c684a54ca8e415822c913742f41c6efc4`",
"merged PR #558 exact `2f91bf8641212ecae435b5fbcc9084cc0acd6295`",
"merged PR #556 exact `860714cba46dba06260a5dce09d0e9152fcb0a8c`",
"merged PR #560 exact `5aab7c098f3478069127f34e398326415ec599a4`",
]) {
expect(baseline).toContain(protectedHistory);
expect(baseline).toContain(integrated);
}
expect(baseline).toContain("ordinary/non-force semantic convergence");
expect(baseline).toContain("predecessor GREEN");
expect(baseline).toContain("Construction snapshot");
expect(baseline).not.toContain("protected `main@d6394b2aa73e6fc57fccdad74ea38ad87f79e7f8`");
expect(baseline).not.toContain("PR #542 exact `195fdd70b267332f246d93beb95fa96fabade52e`");
expect(baseline).not.toContain("PR #540은 아직 merge authority가 아니다");
expect(baseline).toContain("ordinary/non-force semantic convergence");
expect(baseline).toContain("queued는 GREEN이 아니다");
});
});
18 changes: 9 additions & 9 deletions test/documentation-workflow-concurrency-authority.test.ts
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
import { readFileSync } from "node:fs";
import { describe, expect, it } from "vitest";

describe("workflow-concurrency documentation authority", () => {
it("treats #550 and #540 as integrated protected history", () => {
describe("documentation workflow and concurrency authority", () => {
it("keeps nonterminal checks and concurrent branch movement non-authorizing", () => {
const baseline = readFileSync("docs/product-technical-gap-baseline.md", "utf8");

expect(baseline).toContain("merged PR #550 exact `f2ec2dc6709814070cc3e3d6932ce280aee966db`");
expect(baseline).toContain("#550은 PR-scoped supersession cancellation과 work-conserving dispatch를");
expect(baseline).toContain("merged PR #540 exact `05bc2d47c3899ebe17538070f9a30172f90307ac`");
expect(baseline).toContain("protected work-conserving concurrency/admission");
expect(baseline).toContain("pinned `workerd@1.20260625.1` + `esbuild@0.28.1`");
expect(baseline).not.toContain("PR #540은 아직 merge authority가 아니다");
expect(baseline).not.toContain("patch-validator-image 34155490034");
for (const state of ["queued", "pending", "in_progress", "skipped", "cancelled"]) {
expect(baseline).toContain(state);
}
expect(baseline).toContain("Every source mutation/restack invalidates predecessor workflow evidence");
expect(baseline).toContain("Concurrent commits나 pushes 자체를 race로 단정하지 않는다");
expect(baseline).toContain("force push나 destructive rebase가 아니라 ordinary/non-force semantic convergence");
expect(baseline).toContain("Blocked lane은 자기 lane만 막고 unrelated safe review");
});
});
50 changes: 21 additions & 29 deletions test/product-technical-gap-current-candidate-contract.test.ts
Original file line number Diff line number Diff line change
@@ -1,36 +1,28 @@
import { readFileSync } from "node:fs";
import { describe, expect, it } from "vitest";

describe("product technical gap current candidate authority", () => {
it("tracks protected truth and separates active candidates from integrated history", () => {
describe("product-technical gap current authority", () => {
it("records integrated external-extension admission and the durable lifecycle successor without overclaiming completion", () => {
const baseline = readFileSync("docs/product-technical-gap-baseline.md", "utf8");

for (const currentTruth of [
"protected `main@099d7d89a51bca4a2cf7c6b285b50ffadd08d001`",
"central `.github/main@78a4937c684a54ca8e415822c913742f41c6efc4`",
"PR #535 exact `e996b509f699c3f942ef81f0ac52b804b783cd19`",
"merged PR #540 exact `05bc2d47c3899ebe17538070f9a30172f90307ac`",
"observed PR #556 exact `fecb03d9c632f90f290f921c1d6e90ce86ca5305`",
"merged PR #542 exact `ca839298fcaeec409091dc909789b6f87eb67fdc`",
"merged PR #550 exact `f2ec2dc6709814070cc3e3d6932ce280aee966db`",
"merged PR #553 exact `3bd9f543e97ce856f78b1c608141436298ce9e74`",
]) {
expect(baseline).toContain(currentTruth);
}
expect(baseline).toContain("live #556 must be re-fetched before integration");
expect(baseline).toContain("predecessor GREEN");

for (const staleTruth of [
"protected `main@d6394b2aa73e6fc57fccdad74ea38ad87f79e7f8`",
"protected `main@e6de53a1c2902cddc09e77a58efb82420cd8f5db`",
"PR #535 exact `4ad6907ae9f97b202a32a9b5e170f275ac9129b9`",
"PR #542 exact `195fdd70b267332f246d93beb95fa96fabade52e`",
"PR #550 exact `f2ec2dc6709814070cc3e3d6932ce280aee966db`도 protected",
"PR #553 exact `c03d946f52faf65b1f9b75c3c601fed106ffcbd0`",
"PR #540은 아직 merge authority가 아니다",
"patch-validator-image 34155490034",
]) {
expect(baseline).not.toContain(staleTruth);
}
expect(baseline).toContain("issue #545 / merged PR #560");
expect(baseline).toContain("Runtime-current authority RED `4be371ec08b852f4d00829ba5aa6936df6564b5e`");
expect(baseline).toContain("Noema Policy / Approval issuance");
expect(baseline).toContain("runtime wall clock");
expect(baseline).toContain("Replay semantic RED `cb8ad638875b761aea70aba78a480bd5031c4d7d`");
expect(baseline).toContain("normalized invocation envelope");
expect(baseline).toContain("Unbound core-receipt RED `5a50a9bcfe12f3938b30e4a3cb15af8d30134391`");
expect(baseline).toContain("public binding이 없는 retained receipt를 fail closed");
expect(baseline).toContain("policy drift/revocation");
expect(baseline).toContain("admission-bound live authority");
expect(baseline).toContain("Exact-admission provenance RED");
expect(baseline).toContain("Plaintext replay-retention RED");
expect(baseline).toContain("Worker Web Crypto");
expect(baseline).toContain("ADR 0015는 protected source에 포함됐지만 상태는 `Proposed`");
expect(baseline).toContain("merged #560 + issue #561");
expect(baseline).toContain("append-only versioned lifecycle stream");
expect(baseline).toContain("context-graph-contracts");
expect(baseline).toContain("live plugin installation 또는 buyer completion을 주장하지 않는다");
expect(baseline).toContain("immutable Noema release");
});
});