A Symbiosis-derived standalone scaffold for a mode-aware technical collaboration agent. Character modes set stance, harness sets execution rules, memento preserves continuity, and projects hold the work itself.
This is not an app. It is a standalone operating scaffold for running technical collaboration with continuity across sessions.
The goal is simple: keep the agent sharp without forcing every new session to restart from zero.
This folder is designed to be copyable into its own repository without depending on the rest of this workspace.
This agent scaffold supports one default character plus four specialist modes:
technical-collaborator— default implementation and collaboration modesystems-architect— boundary, interface, and evolution moderesearch-synthesizer— retrieval, comparison, and documentation modecode-reviewer— findings-first review modedebugging-specialist— hypothesis-driven root-cause mode
All five modes live under character/modes/ so the character layer stays structurally uniform.
In hosts that support named agent modes, select the matching mode through the host interface. Host-level mode wiring should map one-to-one to the character definitions under character/modes/.
This repository also includes GitHub agent files under .github/agents/ so the same modes can be selected directly in VS Code.
If no specialist mode is selected, the scaffold falls back to technical-collaborator.
Use technical-collaborator when the task is mainly implementation, iteration, or day-to-day technical collaboration.
Switch to a specialist mode only when the task is clearly dominated by a narrower decision surface:
systems-architectfor boundaries, contracts, compatibility, or migration shaperesearch-synthesizerfor documentation retrieval, source comparison, or unfamiliar surfacescode-reviewerfor findings-first review of a concrete changed surfacedebugging-specialistfor failing behavior, root-cause isolation, and smallest-slice repair
The mode changes the active character lens first. Shared harness and memory stay canonical unless a mode has a small explicit harness overlay.
Use this scaffold if you want an agent that:
- keeps a stable operating stance across sessions
- uses explicit execution rules instead of improvised prompting
- can switch between a default collaboration mode and specialist modes without forking the whole system
- separates events, knowledge, workflows, and future work
- can attach local project context without letting memory override current reality
This is most useful when you already work iteratively with an agent and want continuity without turning the root prompt into a junk drawer.
Start at AGENTS.md. The root router reads in this order:
character/AGENTS.mdharness/operations.mdharness/commands.mdmemento/AGENTS.md
character/AGENTS.md resolves the active character mode, then reads that mode's soul.md, identity.md, shared user.md, and symbiosis.md. If a matching harness/modes/{mode}.md file exists, it is read as a narrow execution overlay before the shared harness files.
Mode selection is simple:
- active agent mode name wins when the host provides one
- otherwise an explicit user request to switch mode wins
- otherwise the scaffold defaults to
technical-collaborator
Outside project mode, precedence is:
character > harness > memento
Inside project mode, precedence becomes:
character > harness > project > memento
That means values constrain tools, tools constrain memory, and local project context can override general history without overriding character or harness.
character/defines who the agent is, how it reasons, and how it communicates.harness/defines how work runs: retrieval, gating, validation, review, and maintenance triggers.memento/stores continuity across sessions using episodic, semantic, procedural, and prospective memory.projects/holds the work itself when a named project needs local context and artifacts.
skywalker/
├── AGENTS.md
├── README.md
├── .github/
│ └── agents/
├── character/
│ ├── AGENTS.md
│ ├── user.md
│ └── modes/
│ ├── technical-collaborator/
│ ├── systems-architect/
│ ├── research-synthesizer/
│ ├── code-reviewer/
│ └── debugging-specialist/
├── harness/
│ ├── operations.md
│ ├── commands.md
│ └── modes/
│ ├── code-reviewer.md
│ └── debugging-specialist.md
├── memento/
└── projects/
The root stays thin. The real behavior lives one level down.
- Read
AGENTS.mdand the files it routes to. - Start in
technical-collaboratorunless the task is clearly architecture, research, review, or debugging dominated. - Keep one live scratchpad in
memento/episodic/sessions/while work is active. - Use
memento/prospective/tasks/to keep Now, Next, Waiting, and Blocked visible. - Promote stable knowledge into
memento/semantic/llm-wiki/only when it remains useful after the current task ends. - Promote repeatable workflows into
memento/procedural/skills/only when the decision surface has stabilized.
If you copy this scaffold into a fresh repository, start here:
- Replace the placeholder user identity and preferences in
character/user.md. - Adjust
character/modes/technical-collaborator/first, because that is the default day-to-day mode. - Review the specialist modes and only rewrite the ones whose stance you actually want to differ.
- Tighten or relax the ask-first boundaries in
harness/operations.md. - Keep or remove the starter semantic and procedural content depending on whether you want an empty scaffold or a seeded one.
- Create the first real live scratchpad under
memento/episodic/sessions/when work starts.
Ingest moves signal upward.
- sessions become lesson candidates and future tasks
- lessons become character, harness, wiki, or skills when confirmed
- tasks move from inbox into working state
- stable drafts can graduate into durable knowledge
Use ingest to reduce repeated rediscovery.
Lint catches drift.
lint bootstrapchecks the load stacklint wikichecks the semantic layerlint skillschecks procedural overlap and driftlint subtractionasks whether rules should be removed or promoted elsewherelint symbiosischecks whether the contract is still holding
Use lint to keep the structure small, sharp, and honest.
This scaffold already includes:
- a default technical-collaborator mode plus four specialist character modes
- a tightened harness with explicit first-validation and ask-first rules
- mode-specific harness overlays for review and debugging
- a seeded semantic wiki with recurring decision surfaces
- episodic templates for live sessions and lessons
- prospective task files reset to starter state
- a procedural layer with a reusable starter template and one real skill
The next step is not adding more scaffolding. It is using the scaffold, then only promoting what repeats.
The same rule now applies to mode-specific execution behavior: keep shared harness as the default, and add a mode overlay only when a mode needs a repeatable execution bias that is narrower than a whole harness fork.
This repository is intentionally lightweight. It is a scaffold, not a framework package. If you publish it, the most valuable thing is keeping the structure sharp and the starter content easy to replace.
If a piece of information is mainly about what happened, keep it episodic.
If it is mainly about what to do later, keep it prospective.
If it remains useful without the original event, promote it into semantic.
If it teaches a stable workflow, promote it into procedural.