14 KiB
title, type, status, date
| title | type | status | date |
|---|---|---|---|
| feat: Add idea-lineage thinking skill | feat | completed | 2026-06-03 |
feat: Add idea-lineage thinking skill
Summary
Add an idea-lineage thinking skill that traces how one idea has evolved through a user's brain: first mention, best articulation, related concepts, reversals, contradictions, abandoned branches, and the current live version. The contribution should start as a read-only skill with routing and conformance coverage, not as a new CLI or MCP operation.
Problem Frame
GBrain already has two adjacent capabilities that are easy to conflate with this feature:
skills/concept-synthesis/SKILL.mdis a mutating, batch-oriented concept map builder. It deduplicates many concept stubs, tiers them, writes concept pages, and creates an intellectual universe.find_trajectoryandgbrain eval trajectoryare structured entity trajectories over typed facts and events. They work best for questions like metric history, founder consistency, role/status changes, and event timelines.
idea-lineage should occupy the narrow space between them: a query-time, single-idea, citation-backed synthesis of conceptual evolution. It should help a user ask "how has my thinking about this idea changed?" without running a global concept-synthesis job or forcing the idea into an entity/metric trajectory model.
Requirements
Behavior
- R1. The skill accepts a single idea, topic, concept phrase, or nearby concept page and produces a focused lineage for that idea only.
- R2. The output identifies first mention, best articulation, related concepts, reversals, contradictions, abandoned branches, and current live version when evidence supports each category.
- R3. Every lineage claim is grounded in existing brain evidence: page links, dates, verbatim snippets, timeline entries, takes, contradiction findings, or trajectory points when applicable.
- R4. The skill distinguishes evidence strength. Missing or weak evidence should be reported as a gap, not filled with plausible narrative.
- R5. The default workflow is read-only and does not write or mutate brain pages.
Routing
- R6. Routing should prefer
idea-lineagefor single-idea evolution requests such as "how has my thinking about X changed?". - R7. Routing should keep broad corpus/map requests on
concept-synthesis. - R8. Routing should keep structured entity metric/status questions on
find_trajectory,gbrain eval trajectory, orgbrain thinktrajectory injection.
Privacy and portability
- R9. The skill and fixtures must use public, generic examples only.
- R10. The plan and implementation must avoid private fork names, real people, real companies, funds, or host-specific filesystem paths in public artifacts.
Scope Boundaries
In Scope
- A new bundled skill under
skills/idea-lineage/. - Resolver, manifest, and plugin-bundle wiring.
- Routing fixtures that prove the new intent is reachable and does not swallow
concept-synthesisor trajectory-shaped prompts. - Documentation inside the skill body that explains when to use
search,query,get_page,list_pages,takes_search,find_contradictions, and optionallyfind_trajectory. - Focused conformance, resolver, and routing verification.
Deferred to Follow-Up Work
- A first-class
idea_lineageMCP operation. - A
gbrain idea lineage <query>CLI. - Persisting lineage reports back into the brain.
- New database tables, schema-pack fields, or concept lineage graph primitives.
- Automated contradiction-probe reruns. The skill should read cached contradiction findings if available, not trigger expensive probes.
Outside This Contribution
- Replacing
concept-synthesis. - Changing the facts/takes epistemology model.
- Changing
find_trajectory's entity-slug contract. - Implementing the broader taxonomy redesign tracked by issue #1668.
Key Technical Decisions
- Start as a markdown skill: GBrain's architecture treats skills as fat markdown workflows. This feature can be useful by orchestrating existing read operations, so a CLI/MCP surface would add contract weight before the behavior is proven.
- Make the skill non-mutating by default: The user intent is investigative. Writing lineage pages should remain a later explicit mode after routing and output quality are established.
- Use evidence buckets rather than a single narrative pass: The output should force the agent to separately evaluate first mention, articulation, current version, reversals, contradictions, and abandoned branches. That reduces the risk of smoothing over conflict.
- Keep
find_trajectoryas an optional side-channel: It is valuable when an idea query resolves to an entity attribute or status history, butidea-lineageshould not depend on typed facts being present. - Avoid the existing "trace idea evolution" trigger phrase: That phrase already routes to
concept-synthesis; adding it to the new skill would create avoidable resolver ambiguity.
High-Level Technical Design
flowchart TB
A["User asks about one idea"] --> B{"Intent shape"}
B -->|"whole corpus / map"| C["concept-synthesis"]
B -->|"entity metric / status over time"| D["trajectory surfaces"]
B -->|"single conceptual idea"| E["idea-lineage skill"]
E --> F["Resolve idea candidates"]
F --> G["Gather evidence via search/query/pages/takes"]
G --> H["Classify lineage moments"]
H --> I["Synthesize cited answer with confidence gaps"]
Implementation Units
U1. Add the idea-lineage Skill
- Goal: Create the read-only skill contract and workflow.
- Requirements: R1, R2, R3, R4, R5, R9, R10
- Dependencies: None
- Files:
skills/idea-lineage/SKILL.mdtest/skills-conformance.test.ts
- Approach: Create a new skill with required frontmatter and conformance sections. The skill should define its workflow in phases: clarify the target idea, resolve likely concept/page anchors, collect evidence, classify lineage moments, produce a cited synthesis, and state gaps. Frontmatter should set
mutating: falseand list read operations only. - Patterns to follow:
skills/strategic-reading/SKILL.mdfor a read-only thinking-skill shape with related-skill boundaries.skills/query/SKILL.mdfor search/query/get-page guidance.skills/concept-synthesis/SKILL.mdfor contrast, not for behavior reuse.
- Test scenarios:
- A new
SKILL.mdwith frontmatter,## Contract,## Output Format, and## Anti-Patternspasses conformance. - The frontmatter declares a unique
name: idea-lineage. - The skill body references only portable, synthetic examples.
- A new
- Verification:
bun test test/skills-conformance.test.tspasses.
U2. Wire Resolver, Manifest, and Bundle Metadata
- Goal: Make the skill discoverable by bundled skill users and resolvable by agents.
- Requirements: R6, R7, R8, R9, R10
- Dependencies: U1
- Files:
skills/RESOLVER.mdskills/manifest.jsonopenclaw.plugin.jsontest/resolver.test.tstest/skillpack-reference.test.ts
- Approach: Add
idea-lineageto the skill manifest and plugin skill list. Add a resolver row in the thinking or uncategorized section with narrow user phrases such as "how has my thinking about", "trace the lineage of this idea", "what is my current version of", and "show reversals in my thinking about". Keep broad concept-map phrases routed toconcept-synthesis. - Patterns to follow:
skills/RESOLVER.mdrows forstrategic-reading,concept-synthesis, andperplexity-research.- Existing sorted
openclaw.plugin.jsonskill list.
- Test scenarios:
- Every quoted resolver trigger fuzzy-matches a frontmatter trigger in
skills/idea-lineage/SKILL.md. idea-lineageis listed inskills/manifest.json.idea-lineageis listed inopenclaw.plugin.jsonif the contribution ships as part of the bundled OpenClaw skillpack.- Existing skills remain reachable.
- Every quoted resolver trigger fuzzy-matches a frontmatter trigger in
- Verification:
bun test test/resolver.test.tspasses.
U3. Add Routing Eval Fixtures
- Goal: Prove the new routing boundary against adjacent skills.
- Requirements: R6, R7, R8
- Dependencies: U1, U2
- Files:
skills/idea-lineage/routing-eval.jsonlskills/concept-synthesis/routing-eval.jsonlsrc/core/routing-eval.ts
- Approach: Add positive fixtures for single-idea lineage prompts and negative or ambiguity-declared fixtures around adjacent surfaces. The fixture text should paraphrase triggers rather than copy them exactly, because the routing fixture linter rejects tautological trigger copies.
- Test scenarios:
- "Show how my thinking about founder-led sales changed over time" routes to
idea-lineage. - "What is my current version of the compounding trust idea?" routes to
idea-lineage. - "Synthesize my concepts into a tiered intellectual map" stays on
concept-synthesis. - "How has acme-example MRR trended since January?" does not route to
idea-lineage. - Negative fixtures avoid false positives for generic "publish this report" or "what is this concept?" prompts.
- "Show how my thinking about founder-led sales changed over time" routes to
- Verification:
gbrain routing-eval --jsonreports no new misses, false positives, or unapproved ambiguity for the added fixtures.
U4. Add Output Contract and Citation Discipline
- Goal: Make the skill's user-facing answer shape predictable and reviewable.
- Requirements: R2, R3, R4, R5
- Dependencies: U1
- Files:
skills/idea-lineage/SKILL.mdskills/conventions/quality.mdskills/brain-ops/SKILL.md
- Approach: Define the output format directly in the skill body. The recommended shape should include a compact current answer, evidence timeline, lineage buckets, contradictions/reversals, abandoned branches, related concepts, and confidence gaps. Require page/date/snippet evidence for each non-gap claim. Preserve quote fidelity and avoid hallucinated dates.
- Patterns to follow:
skills/conventions/quality.mdfor citation and quote-fidelity expectations.skills/brain-ops/SKILL.mdfor source attribution and source-id formatting.docs/takes-vs-facts.mdfor not conflating holder-attributed takes with the brain owner's facts.
- Test scenarios:
- Test expectation: none beyond conformance for the markdown-only contract; routing and conformance tests cover the machine-checkable surface.
- Verification: Manual review confirms the skill body tells the agent how to cite, label gaps, and separate facts/takes/trajectory evidence.
U5. Refresh Generated Documentation If Required
- Goal: Keep generated LLM-facing docs consistent if the test suite requires it.
- Requirements: R9, R10
- Dependencies: U1, U2, U3
- Files:
llms.txtllms-full.txttest/build-llms.test.ts
- Approach: Run the build-llms test after adding the skill. If it fails because committed docs are stale, regenerate with the existing generator and include the generated diff. If it passes without regeneration, leave these files unchanged.
- Patterns to follow:
package.jsonscriptbuild:llms.test/build-llms.test.tsfailure message.
- Test scenarios:
- Committed
llms.txtandllms-full.txtmatch generator output. llms-full.txtremains within the size budget.
- Committed
- Verification:
bun test test/build-llms.test.tspasses.
Acceptance Examples
- AE1. When the user asks "How has my thinking about founder-led sales changed over time?", the agent routes to
idea-lineage, searches for evidence, and returns a cited lineage rather than runningconcept-synthesis. - AE2. When the user asks "Run concept synthesis across my notes", the agent routes to
concept-synthesis, notidea-lineage. - AE3. When the user asks "How did acme-example's MRR trend?", the agent uses trajectory surfaces rather than
idea-lineage. - AE4. When the evidence does not support an "abandoned branch" claim, the output includes a gap instead of inventing one.
Risks & Dependencies
- Resolver overlap risk:
concept-synthesisalready uses "trace idea evolution". Mitigate by avoiding that exact trigger and adding routing fixtures around the boundary. - Narrative overreach risk: The feature invites story-making. Mitigate by requiring dates, snippets, links, and explicit gaps for unsupported categories.
- Privacy risk: Skill examples can easily drift into real-brain language. Use synthetic examples only and rely on existing privacy checks.
- Generated-doc churn risk: Adding a bundled skill may require
llms.txtandllms-full.txtregeneration. Treat generated-doc changes as mechanical and separate from the skill design during review. - Future taxonomy dependency: Issue #1668 may eventually change concept filing and identity. This plan avoids new schema assumptions so the contribution remains compatible with the current repo.
Sources & Research
skills/concept-synthesis/SKILL.mddefines the existing batch, mutating, concept-map surface.skills/RESOLVER.mdandskills/manifest.jsondefine current skill reachability and bundle metadata.docs/architecture/lens-packs.mdshows that atoms and concepts are already part of the lens-pack/dream-cycle substrate.docs/proposals/temporal-contradiction-probe.mdanddocs/takes-vs-facts.mddefine the temporal and epistemic boundaries this skill must not blur.src/core/operations.ts,src/core/trajectory.ts,src/commands/eval-trajectory.ts, andtest/operations-find-trajectory.test.tsdefine the currentfind_trajectorycontract.- Pull requests #1131, #1296, and #1364 provide the recent trajectory, think-routing, and lens-pack context.
- Issue #1668 is related future taxonomy work, but not a prerequisite for this contribution.