Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| project | No | Path to your project directory. If omitted, Twining uses the current working directory. |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| twining_post | Post an entry to the shared blackboard. Use this to share findings, needs, warnings, status updates, and other coordination messages with other agents. Does NOT accept entry_type 'decision' — use twining_decide instead. |
| twining_read | Read blackboard entries with optional filters. Use this to check what other agents have posted, find relevant context, or review recent activity. |
| twining_query | Semantic search across blackboard entries. Uses embeddings when available, falls back to keyword search. Returns entries ranked by relevance. |
| twining_recent | Get the most recent blackboard entries. Quick way to see latest activity without specifying filters. |
| twining_dismiss | Remove specific blackboard entries by ID. Use this to clean up false-positive warnings, resolved entries, or other noise. Returns which IDs were dismissed and which were not found. |
| twining_decide | Record a decision with full rationale, alternatives considered, and traceability. Creates a decision record and cross-posts to the blackboard. |
| twining_why | Retrieve all decisions affecting a given scope or file. Shows the decision chain with rationale, confidence, and alternatives count. Essential for understanding "why was it done this way?" |
| twining_trace | Trace a decision's dependency chain upstream (what it depends on) and/or downstream (what depends on it). Uses BFS with cycle protection. |
| twining_reconsider | Flag a decision for reconsideration. Sets active decisions to provisional status and posts a warning to the blackboard with downstream impact analysis. |
| twining_override | Override a decision with a reason. Sets the decision to overridden status, records who overrode it and why, and optionally creates a replacement decision automatically. |
| twining_promote | Promote one or more provisional decisions to active status. Use this to confirm provisional decisions that have been validated through implementation and testing. |
| twining_commits | Query decisions by commit hash. Returns all decisions that were linked to a given commit, enabling traceability from code changes back to decision rationale. |
| twining_search_decisions | Search decisions across all scopes by keyword or semantic similarity. Returns ranked results without requiring a specific scope. Supports filtering by domain, status, and confidence level. |
| twining_link_commit | Link a git commit hash to an existing decision. Enables bidirectional traceability between decisions and commits. |
| twining_assemble | Build tailored context for a specific task. Returns relevant decisions, warnings, needs, findings, and questions within a token budget. Call this before starting any task to get shared context from other agents. |
| twining_summarize | Get a high-level summary of project or scope state. Returns counts of active decisions, open needs, warnings, and a recent activity narrative. |
| twining_what_changed | Report what changed since a given point in time. Returns new decisions, new entries, overridden decisions, and reconsidered decisions. Use this to catch up on changes since you last checked. |
| twining_verify | Run verification checks on a scope. Checks test coverage (tested_by relations), warnings acknowledgment, assembly-before-decision tracking, drift detection (P2 stub), and constraints (P2 stub). Auto-posts a finding with the summary. |
| twining_export | Export full Twining state as a single markdown document. Includes blackboard entries, decisions with full rationale, and knowledge graph entities/relations. Use for handoff between context windows, documentation, or debugging. |
| twining_agents | List all registered agents with their capabilities and liveness status. |
| twining_register | Register a new agent or update an existing one. Merges capabilities on re-registration. Use this to make subagents visible in the coordination dashboard. |
| twining_discover | Find agents matching required capabilities, ranked by capability overlap and liveness. Returns scored agent list for delegation decisions. |
| twining_delegate | Post a delegation request to the blackboard as a 'need' entry with capability requirements. Returns suggested agents ranked by match quality. |
| twining_handoff | Create a handoff record from one agent to another, capturing work results and auto-assembling context snapshot. Posts a status entry to the blackboard. |
| twining_acknowledge | Acknowledge receipt of a handoff, recording which agent picked it up. |
| twining_status | Overall health check of the Twining state. Shows blackboard entry count, decision counts, graph entity/relation counts, actionable warnings, and a human-readable summary. |
| twining_archive | Archive old blackboard entries. Moves entries older than a cutoff timestamp to an archive file, preserving decision entries. Optionally posts a summary finding. |
| twining_add_entity | Add or update a knowledge graph entity. Uses upsert semantics: if an entity with the same name and type exists, its properties are merged and updated. Returns the entity ID. |
| twining_add_relation | Add a relation between two knowledge graph entities. Source and target can be entity IDs or names. Returns an error for ambiguous name matches. |
| twining_neighbors | Traverse the knowledge graph from an entity, returning neighbors up to a given depth (max 3). Supports filtering by relation type. Useful for understanding how entities connect. |
| twining_graph_query | Search the knowledge graph for entities by name or property substring match. Case-insensitive. Returns matching entities with their properties. |
| twining_prune_graph | Remove orphaned knowledge graph entities that have no relations. Use this to clean up stale or disconnected entities. Optionally filter by entity type to only prune certain kinds. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |