feat: review ecc external harness safely
This commit is contained in:
parent
f6319a149d
commit
bac3c27380
|
|
@ -31,6 +31,14 @@ describe("external project review receipts", () => {
|
||||||
expect(matt.risks).toContain("external skill prompts are prompt-injection inputs");
|
expect(matt.risks).toContain("external skill prompts are prompt-injection inputs");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it("records ECC as learn-only external harness research", () => {
|
||||||
|
const receipt = createSkillsRepoReviewReceipt("affaan-m/ECC", new Date("2026-07-01T00:00:00.000Z"));
|
||||||
|
|
||||||
|
expect(receipt).toMatchObject({ repo: "affaan-m/ECC", license: "MIT", safeToVendor: false, decision: "learn-only", deployAttempted: false });
|
||||||
|
expect(receipt.patternsLearned).toContain("agent harness optimization patterns");
|
||||||
|
expect(receipt.risks).toContain("optimization claims need local receipts");
|
||||||
|
});
|
||||||
|
|
||||||
it("records deploy-gated permission posture without opening 8098", () => {
|
it("records deploy-gated permission posture without opening 8098", () => {
|
||||||
const receipt = createPermissionPostureReceipt("deploy-gated", new Date("2026-07-01T00:00:00.000Z"));
|
const receipt = createPermissionPostureReceipt("deploy-gated", new Date("2026-07-01T00:00:00.000Z"));
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -60,7 +60,7 @@ export function createOpenCovenReviewReceipt(now = new Date()): ExternalProjectR
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
export function createSkillsRepoReviewReceipt(repo: "mattpocock/skills" | "AI-Builder-Club/skills", now = new Date()): ExternalProjectReviewReceipt {
|
export function createSkillsRepoReviewReceipt(repo: "mattpocock/skills" | "AI-Builder-Club/skills" | "affaan-m/ECC", now = new Date()): ExternalProjectReviewReceipt {
|
||||||
const rows: Record<typeof repo, Omit<ExternalProjectReviewReceipt, "schema" | "createdAt" | "repo" | "deployAttempted">> = {
|
const rows: Record<typeof repo, Omit<ExternalProjectReviewReceipt, "schema" | "createdAt" | "repo" | "deployAttempted">> = {
|
||||||
"mattpocock/skills": {
|
"mattpocock/skills": {
|
||||||
url: "https://github.com/mattpocock/skills",
|
url: "https://github.com/mattpocock/skills",
|
||||||
|
|
@ -82,6 +82,16 @@ export function createSkillsRepoReviewReceipt(repo: "mattpocock/skills" | "AI-Bu
|
||||||
decision: "learn-only",
|
decision: "learn-only",
|
||||||
policy: "learn-patterns-no-vendored-code",
|
policy: "learn-patterns-no-vendored-code",
|
||||||
},
|
},
|
||||||
|
"affaan-m/ECC": {
|
||||||
|
url: "https://github.com/affaan-m/ECC",
|
||||||
|
license: "MIT",
|
||||||
|
safeToVendor: false,
|
||||||
|
patternsLearned: ["agent harness optimization patterns", "skills and memory organization", "research-first development posture"],
|
||||||
|
adaptations: ["review harness ideas as advisory", "rewrite any useful pattern locally behind receipts", "keep Fable safety gates as authority"],
|
||||||
|
risks: ["external harness code is not local capability proof", "do not vendor or execute without review", "optimization claims need local receipts"],
|
||||||
|
decision: "learn-only",
|
||||||
|
policy: "learn-patterns-no-vendored-code",
|
||||||
|
},
|
||||||
};
|
};
|
||||||
return { schema: "fable.external_project.review.v1", createdAt: now.toISOString(), repo, ...rows[repo], deployAttempted: false };
|
return { schema: "fable.external_project.review.v1", createdAt: now.toISOString(), repo, ...rows[repo], deployAttempted: false };
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue