mirror of
https://github.com/merlinhu1/codex-game-studio.git
synced 2026-08-25 07:54:34 +02:00
* docs: remove implemented OpenSpec change Remove the completed eval framework OpenSpec change documents and add a CCGS gap task reference based on the parity reports and upstream CCGS surfaces. * feat: generate CCGS gap report Add an OpenSpec-backed implementation for deterministic remaining-gap reporting from the CCGS parity matrix, including tests and regenerated references. * feat: deepen accessibility role parity Add OpenSpec-backed CCGS-depth coverage for the accessibility specialist role, including role contract tests, parity regression tests, and regenerated gap reports. * feat: close direct role depth gaps Add OpenSpec-backed CCGS-depth contracts for the remaining direct role package gaps, plus parity tests and regenerated remaining-gap reports. Stop before engine sub-specialist, workflow, template, and rule work. * feat: add engine sub-specialist roles Add OpenSpec-backed CCGS engine sub-specialist parity, selected-engine role sets, wrong-engine gating, focused engine references, generated custom-agent surfaces, tests, and regenerated parity reports. * feat: close first workflow parity batch * feat: close remaining workflow parity gaps * feat: close final CCGS parity gaps * chore: remove implemented OpenSpec changes --------- Co-authored-by: MerlinH <merlinh221@gmail.com>
28 lines
1.5 KiB
TypeScript
28 lines
1.5 KiB
TypeScript
import { describe, test } from "node:test";
|
|
import { expect } from "expect";
|
|
import { ccgsInventory, ccgsRoleAdaptations, ccgsSkillAdaptations, validateCcgsAdaptation } from "../src/ccgs-adaptation.js";
|
|
import { studioRoleIds } from "../src/roles.js";
|
|
|
|
describe("curated CCGS adaptation registry", () => {
|
|
test("documents a pinned reviewed source without claiming clone parity", () => {
|
|
expect(ccgsInventory.source).toContain("Claude-Code-Game-Studios");
|
|
expect(ccgsInventory.reviewedAt).toBe("2026-06-25");
|
|
expect(ccgsInventory.policy).toMatch(/Curated reference/i);
|
|
});
|
|
|
|
test("maps CCGS roles without reintroducing legacy underscore ids", () => {
|
|
expect(ccgsRoleAdaptations.length).toBeGreaterThanOrEqual(49);
|
|
for (const legacy of ["producer_agent", "qa_agent", "master_orchestrator"]) {
|
|
expect(studioRoleIds).not.toContain(legacy as never);
|
|
}
|
|
expect(ccgsRoleAdaptations.find((item) => item.sourceId === "lead-programmer")?.decision).toBe("built-in-add-candidate");
|
|
expect(ccgsRoleAdaptations.find((item) => item.sourceId === "godot-gdscript-specialist")?.decision).toBe("built-in-existing");
|
|
});
|
|
|
|
test("maps team skills to recipes and skill-maintenance surfaces out of scope", () => {
|
|
expect(ccgsSkillAdaptations.find((item) => item.sourceId === "team-ui")?.decision).toBe("recipe");
|
|
expect(ccgsSkillAdaptations.find((item) => item.sourceId === "skill-test")?.decision).toBe("out-of-scope");
|
|
expect(validateCcgsAdaptation()).toEqual([]);
|
|
});
|
|
});
|