diff --git a/docs/receipts/external-pattern-research-map-20260702.json b/docs/receipts/external-pattern-research-map-20260702.json new file mode 100644 index 0000000..ea90db5 --- /dev/null +++ b/docs/receipts/external-pattern-research-map-20260702.json @@ -0,0 +1,68 @@ +{ + "schema": "fable.research_map.receipt.v1", + "createdAt": "2026-07-02T00:00:00.000Z", + "taskLabel": "external-pattern-research-map", + "task": "Map ECC, scankii, Miessler/Fable prompts, Test-don't-verify, and factory-memory correction into Fable engineering constraints", + "constraints": [ + "external repositories and links are advisory until locally verified", + "do not vendor, copy, or execute external repositories from this research map", + "rewrite useful patterns locally behind receipts and tests", + "deploy is out of scope for this mapping", + "guarded 8099/deploy via git-proxy is the only canonical deploy route", + "8098/deploy-webhook remains legacy/internal/stale for fable-agent trust", + "live receipt > committed receipt > memory summary" + ], + "mappings": [ + { + "name": "ECC", + "source": "https://github.com/affaan-m/ECC", + "localEvidence": "src/fable5/external-project-review.ts#createSkillsRepoReviewReceipt", + "patterns": ["agent harness optimization", "skills and memory organization", "research-first development posture"], + "adaptation": "learn-only; rewrite any useful harness ideas locally with Fable receipts as authority", + "blocked": ["vendoring", "external execution", "treating optimization claims as local proof"] + }, + { + "name": "scankii", + "source": "https://github.com/ashp15205/scankii", + "localEvidence": "src/fable5/external-project-review.ts#createSkillsRepoReviewReceipt", + "patterns": ["AI-workflow SAST scanner ideas", "prompt-injection detection", "malicious tool payload review"], + "adaptation": "advisory rules only; rewrite useful checks locally with repro receipts/tests", + "blocked": ["vendoring", "unsandboxed scanner execution", "security claims without local reproduction"] + }, + { + "name": "Miessler PAI and Fable prompt posture", + "source": "https://danielmiessler.com/", + "localEvidence": ["src/upgrades/pai-adapter.ts", "src/upgrades/fable5-prompt-engine.ts"], + "patterns": ["TELOS mapping", "harness-not-model compounding", "citation-aware prompt posture", "separate verifier instead of self-verification"], + "adaptation": "keep prompts as bounded operating guidance; receipts and verification remain authority", + "blocked": ["prompt-only deploy authority", "uncited factual claims from search", "self-verification as proof"] + }, + { + "name": "Test-don't-verify", + "source": "TEMP/research/test-dont-verify/index.txt", + "localEvidence": "TEMP/research/test-dont-verify/index.txt", + "patterns": ["testing complements formal verification", "autoformalization expands the trusted computing base", "random testing/falsification finds counterexamples", "verification-guided development compares verified reference and production implementation"], + "adaptation": "pair proofs/specs with falsification, differential tests, and production-runtime measurements", + "blocked": ["claiming proof assistants replace tests", "trusting autoformalized specs without review", "performance claims without runtime evidence"] + }, + { + "name": "factory-memory correction", + "source": "conversation memory summary quarantine", + "localEvidence": "src/fable5/stale-memory-quarantine.ts#createFactoryMemoryQuarantineReceipt", + "patterns": ["quarantine stale memory", "canonical trust path is receipt-backed", "8098 deploy memory is dangerous stale state"], + "adaptation": "prefer live/committed receipts over memory; require explicit approval and fresh gate receipts before any deploy", + "blocked": ["8098/deploy-webhook as trusted deploy path", "memory-only deploy authority", "autonomous deploy without fresh gate receipt"] + } + ], + "skipped": [ + "external repo vendoring", + "external repo execution", + "deploy changes", + "dashboard changes", + "new generator or CLI", + "new tests without code parity need" + ], + "decision": "ready", + "reasons": [], + "deployAttempted": false +}