Replies: 1 comment
-
Extension: Multi-User Registry Sharing (
|
| Component | Changes? | Notes |
|---|---|---|
/post-campaign |
No | Still writes to ~/.nous/wiki/campaigns/<name>/ |
/index-wiki |
Minor | Needs --rebuild mode (re-index all local campaigns) |
/suggest-next |
No | Still reads registry.json + campaign files locally |
/visualize-campaign |
No | Reads local files |
/visualize-registry |
No | Reads local registry.json |
registry.json |
Conceptual | Becomes a derived artifact (rebuilt from campaign files) rather than incrementally appended |
retrieve_wiki_context.py |
No | Still reads local campaign files |
NEW: /sync-registry |
— | The only component that knows about the shared remote |
Discoverability
/sync-registry list-remote shows what projects and campaigns exist on the shared remote without pulling anything. Users can then decide what to pull.
Open Questions
- Cluster recomputation cost: Entity clusters require an LLM call. Should this be skippable (with a
--skip-clustersflag) for frequent pulls? - Campaign file format on remote: Store the full
~/.nous/wiki/campaigns/<name>/directory as-is, or a single consolidated contribution file? - Auth: Git SSH keys? GitHub app tokens? Org-level shared credential?
- Deletion/retraction: Can a user remove a campaign they previously pushed? (Event sourcing says no — append-only. But GDPR might say yes.)
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Why
Nous campaigns cost $50-90 each and produce 30-55 research principles. Right now, that knowledge is stuck in a local
.nous/folder. The next campaign starts from zero — it doesn't know what already worked, what failed, or what's left to try.This causes three concrete problems:
What We Want
A persistence layer that lets knowledge compound across campaigns. Five skills and four scripts that extract, store, retrieve, and visualize knowledge.
We have a working prototype tested against 3 real campaigns. Below is a strategy to merge this into
mainstep-by-step without disturbing the core Nous codebase.No existing code is modified. Everything is additive.
How the pieces fit together
/visualize-campaignre-renders a single campaign's knowledge graph (calls the viz script on pre-existing data, doesn't extract anything)./visualize-registryrenders the full cross-campaign knowledge graph — runs/suggest-nextonce per entity cluster to compute opportunity scores, then produces an annotated HTML page showing the research landscape.Deliverables
/post-campaign/index-wiki/suggest-next/visualize-campaign/visualize-registryWhere data lives
All wiki data goes to
~/.nous/wiki/(user-level, never inside a repo):The PRs
Four PRs, merged in order. Each depends on the one before it. Each PR is a complete feature slice — you can run it end-to-end and verify the result.
PR 1 — Post-Campaign: Extract + Visualize a Single Campaign
Delivers:
scripts/visualize_campaign.py— generates interactive campaign HTML from JSONscripts/validate_concepts.py— validates concepts.json graph integrity.claude/commands/post-campaign.md— the extraction workflow.claude/commands/visualize-campaign.md— thin re-render wrapperWhy first: This is the producer. Everything downstream reads what this creates. It's fully self-contained: give it a finished campaign directory, it writes structured knowledge files and a visualization.
Verify: Run
/post-campaignon any completed campaign directory.Done when: All output files appear in
~/.nous/wiki/campaigns/<name>/(dead-ends.json, frontiers.json, interactions.json, concepts.json, summaries.json, principles.json, summary.md) and the HTML viz is generated.PR 2 — Index-Wiki: Build the Cross-Campaign Registry
Delivers:
.claude/commands/index-wiki.md— merges one campaign into the registryWhy second: Reads what post-campaign produces. Writes
registry.json— the cross-campaign index that everything else queries. This is the only skill that touches the registry.Verify: Run
/index-wiki <campaign-name>twice.Done when: First run creates/updates
~/.nous/wiki/registry.jsonwith entities, concepts, parameters, dead-ends, frontiers, interactions. Second run on the same campaign is a no-op (idempotent).PR 3 — Suggest-Next: Recommend Experiments from Prior Knowledge
Delivers:
scripts/retrieve_wiki_context.py— builds entity-scoped knowledge subgraph.claude/commands/suggest-next.md— recommends next experimentsWhy third: Needs registry.json to exist (PR 2). The script reads the registry + per-campaign files to assemble relevant context. The skill uses that context to generate scored recommendations.
Verify: Run
/suggest-next "some research intent".Done when: Markdown file appears in
~/.nous/wiki/suggestions/with 3 scored recommendations including per-axis breakdowns.PR 4 — Registry Visualization: The Research Landscape
Delivers:
scripts/visualize_registry.py— generates cross-campaign HTML from registry.claude/commands/visualize-registry.md— orchestrates cluster-level suggestions + vizWhy last: Depends on everything: registry (PR 2), suggest-next (PR 3), per-campaign data (PR 1). The skill calls suggest-next per entity cluster, then feeds results to the viz script.
Verify: Run
/visualize-registry.Done when:
~/.nous/wiki/viz/registry.htmlis produced with entity clusters and opportunity annotations.After All 4 PRs Merge
The user workflow becomes:
Beta Was this translation helpful? Give feedback.
All reactions