feat(skill): judgment layer — project decision & state pages#1
Open
ngmeyer wants to merge 3 commits into
Open
Conversation
Add Track 1 of the brain-as-decision-reduction strategy to the bundled /librarian skill, deployable to operators via the existing 'librarian-mcp --setup' flow. Three new subcommands operating on a per-project decision & state page: - project init <name>: scaffolds Projects/<name>.md with frontmatter (type/anchor_outcome/research_scope) and the canonical section layout. Refuses to overwrite existing pages; re-prompts on empty scope. - project log <project>: appends a single experiment-outcome entry to the Experiment & outcome log section (append-only, never rewrites existing entries). Optional decision-ratification marker. - propose <project>: load-bearing steering subcommand. Reads frontmatter, composes the research corpus from declared scope (folders/communities/ tags/wikilinks) via existing librarian primitives, applies the .librarianisolate filter, ranks candidate next moves with cited research and explicit confidence, upserts into a fenced '## Candidate next moves (auto)' block (mirrors the existing '## Related (auto)' pattern). Idempotent on re-run; everything outside the managed block is byte-stable. Adds a 'projects' concept section documenting the page convention, schema, and operator-contract habit (delta-logging is load-bearing). Plus docs/walkthroughs/voltron-pilot.md: a generic on-ramp using Voltron as the worked example, with substitution table showing how the same shape works for any project / anchor / scope. No Rust changes. No new MCP tools. Composes existing v0.1.2 primitives (search/cluster/traverse/tags/list/read/metadata/write). Origin brainstorm: docs/brainstorms/2026-05-30-judgment-layer-project-decision-state-pages-requirements.md Plan: docs/plans/2026-05-30-001-feat-judgment-layer-mvp-plan.md Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Anchor the product direction for the brain: - STRATEGY.md (repo root): librarian-mcp as a decision-reduction engine, two-layer model (maintain judgment / recompute awareness), three tracks (Judgment, Corpus acquisition, Awareness), four key metrics. Track 1 wording widened from retention-only to "retention + agent-proposed steering" to honor the MVP scope landed in this commit. - docs/brainstorms/2026-05-27 (dashboard / Project Command Center): later Awareness surface; deferred per strategy. - docs/brainstorms/2026-05-28 (on-demand synthesis pipeline): superseded by STRATEGY.md's two-layer model; the on-demand-only stance is now scoped to the Awareness layer only. - docs/brainstorms/2026-05-30 (Judgment layer — project decision & state pages): origin for the skill changes in the prior commit. - docs/plans/2026-05-28-001 (library_changes recency primitive): an Awareness-track primitive, still valid, lower priority. - docs/plans/2026-05-30-001 (Judgment-layer MVP): plan for the prior commit. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Operators can now retain project decisions in their vault and get agent-proposed next moves grounded in their own accumulated research. Three new
/librariansubcommands —project init,project log, andpropose— turn a per-project decision page into a falsifiable, outcome-anchored experiment log: declare an anchor metric (Sharpe, CTR, conversion, retention — whatever you actually measure), log experiment deltas as you ship them, and the agent reads the page plus a declared research scope to draft ranked, cited candidate next moves into a managed block on the page.Voltron is the pilot. The feature itself is generic — substitute any project name, anchor metric, and research scope and the same shape works via frontmatter alone.
Why this exists
Ships Track 1 of
STRATEGY.md: the brain is a decision-reduction engine, not a search index over scraped content. Until now, project decisions lived scattered across repo docs, session memory, and the operator's head — so every new session re-derived "what did we decide, what's working, what should we try next." The two-layer model splits that: maintain judgment as canonical commitments in the vault (this PR), and recompute awareness (news, daily flux) on demand (separate Awareness track).The MVP also widens beyond pure retention. The
proposesubcommand reads accumulated outcome history plus declared research and drafts steering candidates, compensating for thin domain experience on projects where the operator has lots of research but limited instinct.How it works
flowchart LR Init["/librarian project init"] -->|scaffold page| Page[("Projects/<name>.md<br/>frontmatter: anchor + scope")] Log["/librarian project log"] -->|append outcome| Page Propose["/librarian propose"] -->|read scope| Corpus[(research corpus<br/>folders / communities<br/>tags / wikilinks)] Page -->|frontmatter + history| Propose Corpus --> Propose Propose -->|cited, ranked| Block[["## Candidate next moves auto<br/>managed fenced block"]] Block --> PageThe loop closes when the operator picks a candidate, ships the change, and runs
project logwith the observed metric delta — informing the next ranking.Key design decisions
library_search,library_cluster,library_traverse,library_tags,library_list,library_read,library_metadata). Alibrary_corpusconvenience primitive is the next step only if pilot UX disappoints.initandlogreinforce the load-bearing operator habit named in the brainstorm — logging the outcome delta when an experiment completes. If deltas aren't logged, the page decays into a narrative log and the falsifiability advantage evaporates.type: decision-statefrontmatter is the canonical signal; default locationProjects/<name>.mdis convention, not constraint. No project name, metric, or folder is baked into the subcommands — every vault-specific value comes from operator-declared frontmatter.## Candidate next moves (auto)upsert mirrors the shipped## Related (auto)pattern from v0.1.2's optimizer. The agent only writes inside its block; everything else on the page is byte-stable across re-runs..librarianisolatehonored end-to-end. The propose subcommand reads the isolate list and excludes citations from isolated folders before writing the managed block — fiction projects (or anything else operators isolate) stay sealed.high|medium|lowconfidence. Sparse-history fallback caps confidence at medium when no prior outcomes inform the ranking.Test plan
cargo testpasses (4 tests, all pre-existing — no Rust code changed in this diff).cargo checkclean except 3 pre-existing warnings unrelated to this PR.docs/walkthroughs/voltron-pilot.mdis a step-by-step on-ramp using Voltron as the worked example, with a substitution table showing the same shape works for any project / anchor / scope.Post-Deploy Monitoring & Validation
include_str!("../skill/SKILL.md")insrc/setup.rs. Operators receive the subcommands by runninglibrarian-mcp --setup <vault>after pulling.--setup,/librarianshows the three new commands;/librarian project init <test>scaffolds a valid page; the resulting page parses cleanly vialibrary_metadata.--setupindicates theinclude_str!deploy path needs investigation.Sources
docs/brainstorms/2026-05-30-judgment-layer-project-decision-state-pages-requirements.mddocs/plans/2026-05-30-001-feat-judgment-layer-mvp-plan.mdSTRATEGY.mdThe release pattern in this repo is tag-from-main for cargo-dist + brew tap distribution; whoever merges decides when to cut the v0.1.3 release tag to deploy these changes to existing operators.