docs: map Armin tool-calling article, add fresh factory live receipt

This commit is contained in:
artale 2026-07-05 00:07:20 +02:00
parent 0236f351ec
commit 14f2e509f4
3 changed files with 128 additions and 0 deletions

View File

@ -33,6 +33,8 @@ Current authority order: **live receipt > committed receipt > memory**.
- `anthropic-fable5-prompting-guide-advisory-map-20260704.json` — maps Anthropic's official Fable 5 prompting guide and Thariq's map-vs-territory article as advisory-only prompting posture; live-verified from platform.claude.com (HTTP 200). - `anthropic-fable5-prompting-guide-advisory-map-20260704.json` — maps Anthropic's official Fable 5 prompting guide and Thariq's map-vs-territory article as advisory-only prompting posture; live-verified from platform.claude.com (HTTP 200).
- `external-ai-links-advisory-map-20260704.json` — maps Sakana Fugu, OpenAI Daybreak, and Cloudflare Temporary Accounts links as advisory-only external research (not deploy authority). - `external-ai-links-advisory-map-20260704.json` — maps Sakana Fugu, OpenAI Daybreak, and Cloudflare Temporary Accounts links as advisory-only external research (not deploy authority).
- `fable-rsi-phase-advisory-map-20260704.json` — maps the memory-only RSI phase architecture (Phases 1-4, Phases A-D, 2026-06-19 auto-patch proof in pi-real-engineering) as advisory-only process documentation. - `fable-rsi-phase-advisory-map-20260704.json` — maps the memory-only RSI phase architecture (Phases 1-4, Phases A-D, 2026-06-19 auto-patch proof in pi-real-engineering) as advisory-only process documentation.
- `factory-live-readonly-20260704.json` — fresh live read-only 2026-07-04 8099 health/factory-status check; confirms 19 containers (not 25), phase 4, agents=6, infra=14, monitoring=5, skills=63; GET /deploy → 404. Reconciles new harness commit d4e2d3c.
- `armin-tool-calling-regression-advisory-map-20260704.json` — live-fetched map of Armin Ronacher's July 4 article on Opus 4.8 hallucinating extra fields in Pi's edit tool; validates fable-agent's hard verification gate approach.
## Memory quarantine ## Memory quarantine

View File

@ -0,0 +1,48 @@
{
"schema": "fable.research_map.receipt.v1",
"createdAt": "2026-07-04T22:05:00.000Z",
"taskLabel": "armin-ronacher-better-models-worse-tools-advisory-map",
"task": "Map Armin Ronacher's July 4, 2026 article 'Better Models: Worse Tools' as advisory postmortem for fable-agent's harness philosophy",
"source": {
"classification": "live-fetched blog post",
"items": ["https://lucumr.pocoo.org/2026/7/4/better-models-worse-tools/"],
"contentVerified": true,
"localProofExists": true,
"liveVerification": {
"url": "https://lucumr.pocoo.org/2026/7/4/better-models-worse-tools/",
"httpStatus": 200,
"fetchedAt": "2026-07-04T22:05:25Z",
"confirmedThesis": "Newer Claude models (Opus 4.8) hallucinate extra, invented fields in Pi's edit tool's nested edits[] array — tool-calling regresses as models improve"
}
},
"extractedPrinciples": [
"Opus 4.8 calls Pi's edit tool with extra, invented fields in the nested edits[] array that don't exist in the tool schema",
"The model is generating tool calls that look structurally correct (same shape, same nesting) but add phantom keys",
"This is not a small-model problem — it's Opus 4.8, Anthropic's frontier model",
"The regression is intermittent — same prompt sometimes works, sometimes adds junk fields",
"Pi's tool schema is stricter than what the model chooses to send; the model is 'over-generating'",
"The practical consequence: better models produce more believable but subtly wrong tool invocations",
"This validates the Dario blueprint's hard verification gate approach — don't trust the model's output, verify every tool call against schema"
],
"constraints": [
"Article is advisory; Armin's specific Pi bug may not reproduce in fable-agent's tool harness",
"The principle generalizes: verify agent tool calls against schema, don't assume correct shape",
"fable-agent's verify-gate (build-test-lint) catches code errors but does not validate tool call schema compliance",
"The flat-ledger (JSONL state) and repo-mapper are structural mitigations — agent reads state, doesn't remember it",
"No deploy, vendoring, dashboards, or new packages were performed for this mapping"
],
"fableAgentAlignment": [
"fable-agent's verify-gate already rejects builds that fail; tool-call schema validation would be a new layer",
"The flat-ledger pattern (state outside LLM context) reduces hallucination surface area",
"The interrupt-gate (human approval before live actions) catches bad tool invocations before they execute",
"Worktree isolation (WorktreeManager) means bad tool calls only damage disposable worktrees, not main branches",
"Dario blueprint's 'hard automated verification' is directly validated by this article — models get smarter, tool-calling gets sloppier, so verify harder"
],
"skipped": [
"deploy actions or route checks",
"new dependency changes"
],
"decision": "advisory",
"deployAttempted": false,
"autoPatchProven": false
}

View File

@ -0,0 +1,78 @@
{
"schema": "fable.factory_live_readonly.receipt.v1",
"createdAt": "2026-07-04T17:15:16.000Z",
"taskLabel": "factory-live-readonly-check-20260704",
"task": "Fresh live read-only check of factory 8099 after Dario blueprint harness build (verify-gate, interrupt-gate, flat-ledger, repo-mapper)",
"source": "read-only HTTPS GET checks against 77.42.112.29:8099",
"authorityOrder": ["live receipt", "committed receipt", "memory"],
"checks": [
{
"url": "http://77.42.112.29:8099/health",
"method": "GET",
"status": 200,
"body": { "status": "ok", "service": "git-proxy" },
"interpretation": "git-proxy is live and healthy; same as 2026-07-03 check"
},
{
"url": "http://77.42.112.29:8099/factory-status",
"method": "GET",
"status": 200,
"bodySubset": {
"status": "stale",
"state": "STALE_FACTORY_STATE",
"phase": 4,
"containers": 19,
"live_containers": 19,
"catalog_containers": 18,
"agents": 6,
"infra": 14,
"monitoring": 5,
"skills": 63,
"truth": "live docker ps wins over catalog/memory when counts disagree"
},
"interpretation": "Factory state unchanged since 2026-07-03. Still 19 live containers (memory says 25). Agents=6, infra=14, monitoring=5, skills=63 all match. Phase 4 confirmed."
},
{
"url": "http://77.42.112.29:8099/deploy",
"method": "GET",
"status": 404,
"body": { "error": "not found" },
"interpretation": "Read-only GET /deploy returns 404. No deploy endpoint exposed on read-only path. Memory claim that /deploy is connected to deploy-webhook is not confirmed."
}
],
"memoryReconciliation": [
{
"memoryClaim": "25 Docker containers all UP",
"liveReceipt": "factory-status reports 19 live containers, 18 catalog, status stale",
"decision": "memory stale/advisory for container count; live receipt wins"
},
{
"memoryClaim": "8098/deploy-webhook autonomous deploy port is operational authority",
"liveReceipt": "checks only used 8099; committed receipts mark 8098 legacy/internal/stale",
"decision": "blocked as fable-agent deploy authority"
},
{
"memoryClaim": "Phase A-D fully operational (skill_health.py cron, POST auto-patch to deploy-webhook, recursive self-improvement loop)",
"liveReceipt": "no fresh local degraded-skill recovery receipt was produced; auto_patch_proven=false",
"decision": "not proven; auto_patch_proven=false until fresh local evidence"
},
{
"memoryClaim": "git-proxy serves /deploy connected to deploy-webhook for autonomous agent deploy",
"liveReceipt": "GET /deploy → 404; /deploy endpoint not confirmed",
"decision": "memory claim not confirmed; deploy goes through guarded 8099/deploy via git-proxy only"
}
],
"harnessVerification": {
"builtAndCommitted": [
"verify-gate (build-test-lint gate, worktree cleanup on fail)",
"interrupt-gate (stdin TTY human approval gate)",
"flat-ledger (JSONL state file outside LLM context)",
"repo-mapper (minified repo tree for system prompt injection)"
],
"testStatus": "68 files, 291 tests passing",
"commit": "0236f35"
},
"decision": "read-only check; no deploy actions attempted",
"deployAttempted": false,
"autoPatchProven": false
}