Skip to content

Post-campaign knowledge extraction and visualization #270

@susiejojo

Description

@susiejojo

Problem

When a Nous campaign finishes, its knowledge (principles, dead-ends, boundary conditions, untested combinations) lives only in raw ledger.json and principles.json files inside the campaign directory. There's no structured way to:

  1. Extract what failed and why (dead-ends)
  2. Identify where knowledge runs out (frontiers)
  3. Surface untested combinations of confirmed techniques (interactions)
  4. See the campaign's knowledge as a navigable graph

Users have to manually re-read principles.json (30-55 entries) to remember what a campaign discovered. This makes it hard to build on prior work or share findings.

Desired Outcome

A /post-campaign Claude skill that takes a completed campaign directory, extracts structured knowledge, and produces:

  • dead-ends.json — self-contained descriptions of what was tried and why it failed
  • frontiers.json — boundary conditions where knowledge ends and the next experiment begins
  • interactions.json — untested combinations of confirmed techniques worth exploring
  • concepts.json — entity/concept/parameter knowledge graph with principle linkage
  • summaries.json — per-iteration narrative (what was tried, what was found)
  • summary.md — human-readable campaign summary
  • An interactive HTML visualization of the campaign's knowledge graph

The skill calls Python scripts for validation and visualization — the LLM handles knowledge extraction, the scripts handle rendering.

Each output entry should be self-contained — readable without opening any other file.

A thin /visualize-campaign skill should also exist for re-rendering the HTML from pre-existing data without re-extracting.

Constraints

  • No modifications to existing orchestrator code (campaign.py, ledger.py, cli.py, etc.)
  • Idempotent: running twice on the same campaign is a no-op
  • All output goes to ~/.nous/wiki/campaigns/<name>/ (user-level, outside any repo)

Context

See Discussion #269 for how this fits into the broader cross-campaign persistence strategy.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions