feat(pi): lean substrate tool surface; feat(decisions): openlore decisions record CLI - #508
Open
laurentftech wants to merge 3 commits into
Open
laurentftech wants to merge 3 commits into
laurentftech wants to merge 3 commits into
Conversation
A Pi session now activates only the MCP `substrate` preset tools plus openlore_configure and the new openlore_activate_tools. The activator turns on task groups (specs, memory, review, quality, inspect) by group or tool name. Tools stay registered, so the parity guard and daemon are unchanged. - pi.toolSurface: "all" in .openlore/config.json keeps every tool active - one-line prompt snippets replace the duplicated full descriptions - CI budgets bound the Pi standing context for the lean and all surfaces - a test keeps the Pi lean set equal to TOOL_PRESETS.substrate Closes #505. Decision: ADR-0034 (848b360d). Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Recording a decision needed the record_decision MCP tool, which the default `substrate` preset does not expose, so collaborators on default settings were blocked by the decisions gate. The new command calls the same handler, so ids, scope inference, anchors, the already-decided verdict, and background consolidation match the MCP tool on any preset. - validates --title, --rationale, --scope, and --constraints-file before writing - --json prints the handler result on stdout - gate and rejection hints named a non-existent `decisions --record`; they now name the real command, and a test keeps it that way - generated guidance names the CLI command when record_decision is not wired Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…ecord Co-Authored-By: Claude Opus 5 <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
Two related changes that give Pi and default-preset collaborators the same experience as the Claude Code default.
1. Pi starts with the substrate tool surface (closes #505)
substratepreset tools plusopenlore_configureand the newopenlore_activate_tools. Before, all 45 tools were active.openlore_activate_toolsturns on task groups (specs,memory,review,quality,inspect), by group name or by any tool name in the group. It never turns on a tool the host allowlist excluded, and it never changes non-OpenLore tools.--preset full) are unchanged."pi": { "toolSurface": "all" }in.openlore/config.jsonkeeps every tool active.promptSnippets replace the duplicated full descriptions. CI budgets bound the standing context: lean ≈ 3,089 tokens against 7,445 for all (chars/4 estimate).TOOL_PRESETS.substrate.848b360d). OpenSpec change archived as2026-09-15-add-pi-lean-tool-surface;mcp-qualityspec synced.2.
openlore decisions recordsubstratedefault does not exposerecord_decision, so collaborators on default settings could not record a decision for the commit gate.openlore decisions --record.record_decisionis not wired.2026-09-15-add-decisions-record-cli;clispec synced.Test plan
tsc --noEmit: no errorsopenspec validate cli|mcp-quality --type spec --strict: validopenlore_activate_tools(["specs"])activates the 6 specs tools andopenlore_list_spec_domainsreturns 16 domains from the daemon; repeating it reportsalreadyActive: ["specs"]with no change;["openlore_remember"]activates the whole memory group;hostExcluded: []Not in this PR
openlore decisions --syncdrops an approved decision that maps to no spec domain and hascomponent/localscope. It reports "Synced", writes nothing, and purges the decision from the store. Found while syncing ADR-0034; to be tracked separately.🤖 Generated with Claude Code