Releases: not-yet-autonomous/CLAIRE
CLAIRE v2.1.1 — Model-routing de-rot + schema reconciliation (Cycle 8)
CLAIRE v2.1.1 — Cycle 8 governance
Governance and documentation patch on top of v2.1.0 (Pipeline Reliability).
No pipeline-code changes; profile-layer and audit-trail maintenance.
Changed
- Model-routing guidance replaced with a dated, self-maintaining MODEL ROUTING
block (c8-prof-001). Per-version preferences (Opus 4.6-over-4.7), two
generations stale and silent on 4.8, retired (c8-mem-001, c8-mem-002).
Profile-layer change. - change_log schema docs reconciled to live v1.2 across CLAUDE.md, README, and
_meta.notes: scope field, eval_window field, and full action/type/scope enum
sets now documented to match the live file.
Fixed
- CLAUDE.md enum/schema drift (documented v1.1 shape and stale enum lists).
Known issues (carried to v2.1.2)
- read_cycle_number() lags config.current_cycle on zero-applied cycles, mistitles
the digest. Next-session priority, pre-Sunday June 14.
Notes
- change_log: 59 entries (schema v1.2).
- Tag points at 242d0e9 (includes cycle-8 doc commits).
- Memory edit 20 (NVDA fabrication guard) is not part of the repo.
v2.1.0 — Pipeline Reliability
v2.1.0 — Pipeline Reliability
What changed
CLAIRE v2.0.0 established the correct output architecture. v2.1.0 fixes three bugs that made the automated pipeline structurally unable to fulfill it.
A Fable 5 code audit (2026-06-09) identified the root causes behind every JSON corruption entry in the friction log since Cycle 4, a graduation-blocking GHA state persistence gap, and a local scorer failure that silently exited 1 on every unattended run.
Breaking changes
None. All fixes are behavioral corrections to existing logic.
High severity
Atomic writes — all nine scripts wrote JSON directly to final path with no atomic pattern. Root cause of all synthesis_queue and candidates corruption since Cycle 4. atomic_write_json helper added to claire_utils.py, adopted at every write site. JSONDecodeError handling added to _load_track.
GHA commit-back scope — workflow committed only PDF digests. All CLAIRE-A state files (decision records, session history, reliability ledger, cost log, suppressed candidates) were discarded at job end. Scorer auto-selected the just-created decisions file, scored nothing, and the reliability ledger could never grow from automated runs. Graduation threshold of 10 observations was structurally unreachable. Commit step extended with explicit force-adds for enumerated state files.
Local scorer --notes — claire_weekly.ps1 invoked claire_a_scorer.py with no --notes flag. On Task Scheduler stdin is closed; scorer raised EOFError and exited 1 on every unattended local run. --notes data/session_notes.txt added to local wrapper, matching GHA invocation.
Medium severity
Archive deduplication — archive.json accumulated duplicates every run, re-entering the full historical corpus into synthesis queues weekly. Clear bug driving gradual synthesis cost increase. Dedup by post_id on write applied. Queue routing age window deferred pending hypothesis.
CLAIRE-A graduation
Graduation clock resets June 14. This is the first run where the reliability ledger can grow from GHA execution. 10-observation threshold now reachable.
Files changed
claire_utils.py — atomic_write_json helper
claire_ingest.py, claire_triage.py, claire_synthesize.py, claire_a_assembler.py, claire_a_runner.py, claire_a_scorer.py — atomic write adoption
claire_a_assembler.py — JSONDecodeError handling in _load_track
claire_triage.py — archive dedup by post_id
.github/workflows/claire_weekly.yml — extended commit-back scope
claire_weekly.ps1 — --notes flag added to scorer invocation
HANDOFF.md — build status, known issues updated
v2.0.0 — Global Optimization Architecture
v2.0.0 — Global Optimization Architecture
What changed
CLAIRE v1.x improved Claude behavior inside the CLAIRE project. That was
never the intent.
v2.0.0 establishes the correct architecture: profile diffs are the primary
output type and apply globally across all Claude sessions. Memory edits are
explicitly scoped to CLAIRE project sessions only. The synthesis pipeline
now enforces this distinction.
Breaking changes
Output type semantics have changed.
memory_edit candidates from v1.x were applied to Claude project memory and
only affected CLAIRE sessions. Any behavioral change you wanted globally was
silently doing nothing outside this project.
Going forward:
profile_diff→ apply in claude.ai Settings → takes effect everywherememory_edit→ CLAIRE session context onlyskill_install→ sessions where the skill file is loaded
Existing applied memory edits that were intended as global behavioral
defaults have been promoted to profile diffs and applied to Profile v13.
See change_log.json entries c6-prof-013 through c6-prof-022.
New in v2.0.0
Profile snapshot cross-reference gate
data/profile_snapshot.txt — canonical copy of your current profile,
injected into the Track A synthesis cross-reference gate alongside
claire_session_context.txt. Prevents synthesis from proposing changes
already covered by your profile. Human-maintained; update when profile
changes.
change_log.json schema v1.2
New scope field on every entry: global (profile_diff) or project
(memory_edit, skill_install). Backfilled on all 55 existing entries.
Track A type selection rule
Synthesis prompt now defaults to profile_diff for behavioral changes
intended to apply across all sessions. memory_edit is reserved for
CLAIRE-specific operational context.
GHA graceful degradation
Workflow writes a placeholder profile_snapshot.txt when the file is
absent (gitignored). Cross-reference gate logs a warning and continues
rather than failing. Full gate precision requires pushing an updated
snapshot before Sunday.
hypothesis_prompt field
New field on change_log entries with empty hypotheses. Contains the
question to answer when writing the hypothesis. Prevents hypothesis
prompts from existing only in session chat history.
Profile v13
Applied alongside this release. Incorporates all c6-prof-006 through
c6-prof-022 changes from the Build 13 profile audit session:
- Three-tier confidence system aligned with hallucination-guard skill
- hallucination-guard and baloney-detection-kit added to skill integration
- Metadata scrubbing elevated to profile-level rule
- Single-vendor dependency and Anthropic platform reliability as standing
analysis defaults - Model version flagging, session start confirmation, Opus 4.6 preference
- Proactive prompt injection flagging
- /compact recommendation for long sessions
- PDF tabular extraction verification callout
- Session-termination and token limit caveat suppression
- Quick docs scope defined; Unhinged Footnote exempted from Strunk rules
Files changed
README.md— output scope architecture, profile diff primacy, ritual updatechange_log.json— schema v1.2, scope field, 19 new entriesdata/profile_snapshot.txt— new file (gitignored, local only)data/claire_session_context.txt— renamed from memory_edits_snapshot.txtprompts/synthesis_prompts.py— Track A type selection ruleclaire_triage.py— profile snapshot injection into cross-reference gate.github/workflows/claire_weekly.yml— profile snapshot placeholder stepHANDOFF.md— rules 11/12, locked decisions, known issues, directory tree- All references to memory_edits_snapshot.txt updated across repo
CLAIRE v0.12.0 — Build 12 / Claude Code Migration
CLAIRE v0.12.0 — Build 12 / Claude Code Migration
What changed
Claude Code migration
CLAIRE's execution environment migrated from Cowork to Claude Code. CLAUDE.md added to project root with behavioral rules governing all Code sessions. PROFILE.md added with the operator AI personality profile. Design decisions continue in the browser Project; Code executes against precise specs.
Assembler memory filter — actually working now (Build 11)
The semantic deduplication filter in claire_a_assembler.py has been running at ~8% suppression since Build 8 due to a missing load_dotenv() call. The assembler was loading credentials via a different path than synthesis, silently falling back to pass-through on auth failure. Fixed in Build 11. Combined source filter also added: change_log entries are now injected at runtime alongside memory_edits_snapshot.txt, giving the filter visibility into applied changes that hadn't yet propagated to the snapshot. Suppression rate on first combined run: 75%.
feature_praise pollution resolved (Build 12)
feature_praise and claude_native categories were accounting for 37% of the triage corpus while producing zero candidates across multiple cycles. Both dropped to IGNORE at the cross-reference gate. Associated keywords (praise, works, good, excellent) removed from signal_keyword_map — they were matching friction log entries on false positives. Track A corpus is meaningfully cleaner.
HN citation URL fix (Build 12 session)
HackerNews posts were storing the external linked URL as the canonical source field. When HN linked to Reddit threads, synthesis cited reddit.com URLs as source signal despite Reddit ingest having been retired in Build 10. Fix: HN permalink (news.ycombinator.com/item?id=...) is now canonical; linked content stored separately in external_url. Stale corpus reset to empty on main.
CLAIRE-A source attribution (Build 12)
Decision records were keying reliability ledger entries as "unknown" due to a missing source field injection. Fixed in claire_a_runner.py — decisions now key by track (claire_synthesize:track_a, etc.). Reliability ledger created manually (2026-06-02); 5 observations, score=0.700.
Track C output stream separated (Build 12)
Technique candidates removed from main digest (PDF and docx). Techniques PDF is now the sole Track C output, keeping the main digest scoped to configuration candidates.
CLAIRE-A graduation criteria — 6 of 6 runs complete
Six consecutive eval runs logged. Remaining graduation criteria: reliability ledger at 10+ observations (currently 5; expected by June 14 per natural GHA cadence) and escalation check pending source-attributed ledger entries. Graduation decision follows the June 14 run.
Configuration changes applied this cycle (Cycles 6)
ID Type Summary
c6-mem-001 memory Word/Excel tabular verification callout
c6-mem-002 memory Suppress unsolicited emotional tone-reading
c6-mem-005 memory No unsolicited wellness check-ins
c6-mem-006 memory External data integrity notice on statistical outputs
c6-prof-002 profile Shadow IT and governance exposure flagging
c6-prof-003 profile No unsolicited interruption of analytical threads
c6-prof-004 profile Context compaction status line
c6-prof-005 profile Mode-level wellness interruption suppression
Known issues carried forward
GHA commit-back scope gap: workflow commits PDFs only. data/, logs/, change_log.json, and friction_log.txt are not committed back after GHA runs. CLAIRE-A decision files, cost logs, and session history do not persist between GHA runs. Build 13 Priority 1.
claire_a_assembler.py contains cp1252 mojibake throughout. Low priority; no logic impact.
Decision records written before 2026-06-02 have source="unknown" in the reliability ledger. Not retroactively fixable.
CLAIRE v0.10.0 — Build 10
Build 10 — Reddit ingest retired, dev.to expanded
Reddit public JSON endpoints and RSS feeds are no longer accessible without
authentication. New app registration is blocked. Reddit ingest removed permanently.
Changes
claire_ingest.py— Reddit source removed.--source redditexits with
retirement message.--source alland--source forumnow mean HN + dev.to only.config.json— Reddit config block removed. dev.to tags expanded from 6 to 9:
addedai(min_reactions: 25),chatgpt(10),productivity(10).README.md— architecture, weekly workflow, locked decisions, and cost sections
updated to reflect HN + dev.to only pipeline.docs/reddit_app_setup.md— removed. Reddit app registration no longer possible.claire_scheduler.xml— removed. Windows Task Scheduler replaced by GHA in Build 8.
Ingest sources as of this release
- HackerNews API (GHA, Sunday 14:00 UTC)
- dev.to API — 9 tags (GHA, Sunday 14:00 UTC)
Known issue
Assembler memory filter auth errors on local runs — non-blocking, candidates
pass through. Scheduled for Build 11 fix.
CLAIRE v0.5.0 — Build 9
CLAIRE (Claude Learns and Improves Iteratively from Real Engagement) is a weekly pipeline that ingests community signal from Reddit, HackerNews, and dev.to, triages it through a scoring layer, synthesizes configuration candidates, and produces a digest for human review. Every change to Claude's memory, profile, or skills requires a human-written hypothesis before it applies. The audit trail is the point.
What's in this release:
Full ingest → triage → synthesis → digest pipeline (Build 9)
CLAIRE-A shadow layer: Opus decision engine + Sonnet eval scorer running in parallel, writing nothing to live config
GitHub Actions weekly automation (Sundays 14:00 UTC)
Pushover notifications with PDF digest attachment
PDF and docx digest output
What's not here:
Auto-application of any configuration change - that's by design
My API key, obviously
Reddit ingest in GHA - Reddit blocks datacenter IPs, so that runs locally on a Monday cron and commits before Sunday's GHA run picks it up
Getting started:
See HANDOFF.md. It's the source of truth for setup, pipeline commands, and architectural decisions. Read it first.
Status:
CLAIRE-A is in shadow mode. Graduation criteria: 80% agreement rate with human decisions over 6 consecutive eval runs, 10+ scored hypotheses, zero escalations in the last 3. Currently 2 of 6 runs complete.