brindley
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": true
} |
| resources | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| use_worktreeA | Switch this server to another git worktree of the same repository, for the rest of this session: every later call reads and writes that checkout. Call it right after creating the worktree you will implement in, so initiative edits land in that branch's commit. With no |
| create_collectionA | Mark a folder as a collection: adds |
| update_collectionC | Edit a collection README's details, including its status (active | done | abandoned). |
| versionA | The Brindley server's version (computed from git tags + Conventional Commits) and build commit. |
| ignoreA | Add or remove a collection's |
| collectionsB | Every collection with its details, counts by initiative status, and number ready. |
| fieldsA | Every front-matter field an initiative (ticket/issue) can have in a collection, and the values each accepts: statuses and their aliases, types, tags, scoring dimensions (in ranking order, with any default and whether required), and the free-text fields — with the tool that sets each. Give a |
| listC | List initiatives (a.k.a. tickets or issues) across the repo, or in one |
| getB | Full detail of one initiative (ticket/issue), including its dependency report (each dependency classified satisfied / blocking / external / missing), dependants, open questions and acceptance criteria. |
| readyB | Initiatives (tickets/issues) that are designed with nothing blocking — what an agent can pick up now — in suggested order (prerequisites first). |
| reportA | Write a one-page progress report for people outside the team — a self-contained HTML file (default build/brindley-report.html) — from the collections and their git history: headline figures, work complete against scope over time, what was delivered, added and taken out this period, workstreams, and what needs attention. Returns the file's path and the figures. Changes no initiative. |
| graphA | Dependency graph as an adjacency list plus Mermaid: a collection's active work, one initiative's neighbourhood, or a tag (theme) across collections. |
| questionsA | Unresolved open questions, grouped by initiative. Abandoned and superseded initiatives are left out — dropping the work settles them — unless asked for by |
| next_questionA | The next unresolved blocking question in one initiative (the first labelled after |
| tagsA | Every tag in use plus declared-but-unused ones, with descriptions, counts by status, and the theme overview doc if one exists (a doc whose front-matter says |
| milestonesA | Every milestone (a doc with |
| check_readyA | Is this initiative (ticket/issue) complete and ready to work on? Runs the preflight the implement and spike briefs start with: status, dependencies, blocking open questions, acceptance criteria (or ## Measures for a spike), validation errors. |
| validateA | Check initiatives and collection structure: missing or unknown statuses, status vs folder vs body-prose disagreements, files not in their collection's status folder, duplicate numbers, dangling references, cycles, broken links (with where a moved file now lives), stale READMEs. Returns errors and warnings with file and line. |
| check_docsA | Lint project docs for history phrasing, design debate and links into initiatives (docs must describe only what the code is). Defaults to docs changed vs HEAD. |
| createB | Create a new initiative (ticket/issue). The number is coined automatically by scanning the working tree, other worktrees, branches and history. A folder path that isn't a collection yet is marked as one. A milestone this reaches, or stops being reached, is reported under |
| updateA | Edit an initiative's (ticket's/issue's) front-matter fields or H1, or replace a named body section — including on a done initiative, which is how settled work is refined (no status change needed). |
| fixA | Repair the validate findings that have one obvious fix, editing text in place (never renaming or moving a file): a broken link whose filename matches exactly one initiative in its collection, |
| rename_collectionA | Move a collection to a new folder, rewriting every relative link into it from anywhere in the repo and out of it from inside. If its name comes from its folder (no |
| renumberA | Give an initiative a new number — fixing a number collision after a merge. Renames its file and asset folder (keeping the slug, padded to the collection's width) and rewrites every link and "#" reference to it across the repo. |
| tidyA | For a collection that declares |
| repadA | Pad every initiative number in a collection to one width ( |
| batch_updateA | Apply update-style changes to many initiatives (tickets/issues) in one call — e.g. recording statuses across an adopted folder. Each entry is a ref plus any of status, reason, type, owner, tags, status_note, docs, dimensions; |
| set_statusA | Change an initiative's (ticket's/issue's) status, enforcing the lifecycle: designed needs no blocking open questions; in-progress needs ready; done goes through |
| add_questionA | Add an open question — one decision per question: pose several as separate questions (warns when the text looks like more than one). It is labelled with the next free label (returned as |
| split_questionA | Split an open question that poses several decisions into one question per decision, in its place and order, in one write. Each part is text or { text, implementation?, answer? }: parts inherit the question's (implementation) marker unless they set their own, and a part with an |
| resolve_questionA | Resolve an open question, named by its label ( |
| set_dependenciesA | Add or remove dependency links. Dependencies are the links under an initiative's |
| completeA | Mark an initiative (ticket/issue) done — "close" it. |
| regenerate_readmesA | Rebuild the generated README blocks (tables + Mermaid). check=true only reports what is stale (for CI). |
| briefA | The brief for one of Brindley's workflows — the text of the prompt of the same name, for agents and skills that cannot fetch MCP prompts: |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| design-review | Work through an initiative's (ticket's/issue's) open questions with the user, one at a time, grounded in the code. |
| implement | Hand-off brief for an agent implementing one initiative (ticket/issue). |
| spike | Hand-off brief for a spike (type: spike): build enough to measure what the initiative's ## Measures asks, record ## Findings, and keep the code on its own branch — it may become the basis of the real implementation. |
| triage | Review the initiatives (tickets/issues): stale drafts, unresolved questions, blocked chains, unconfirmed external dependencies, and what to pick next. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| index | Overview of all collections, cross-collection dependencies and themes |
| Brindley roadmap | One collection's overview: tables and dependency graph |
| initiatives#1 migrate tool for numbered + completed/ collections | The raw Markdown of one initiative (brindley://initiative/<collection>/<number>) |
| initiatives#2 renumber tool for post-merge number collisions | The raw Markdown of one initiative (brindley://initiative/<collection>/<number>) |
| initiatives#3 rename_collection tool | The raw Markdown of one initiative (brindley://initiative/<collection>/<number>) |
| initiatives#4 Cycle errors advise where back-references belong | The raw Markdown of one initiative (brindley://initiative/<collection>/<number>) |
| initiatives#5 set_dependencies explains links it cannot remove | The raw Markdown of one initiative (brindley://initiative/<collection>/<number>) |
| initiatives#6 Record status without lifecycle checks | The raw Markdown of one initiative (brindley://initiative/<collection>/<number>) |
| initiatives#7 Infer a missing status from the initiative's prose | The raw Markdown of one initiative (brindley://initiative/<collection>/<number>) |
| initiatives#8 Fix mode for mechanical validate findings | The raw Markdown of one initiative (brindley://initiative/<collection>/<number>) |
| initiatives#9 Suggest a home for companion notes | The raw Markdown of one initiative (brindley://initiative/<collection>/<number>) |
| initiatives#10 Name the base folder in path errors | The raw Markdown of one initiative (brindley://initiative/<collection>/<number>) |
| initiatives#11 batch_update tool | The raw Markdown of one initiative (brindley://initiative/<collection>/<number>) |
| initiatives#12 Themes section in the collection README | The raw Markdown of one initiative (brindley://initiative/<collection>/<number>) |
| initiatives#13 Consistent zero-padded numbering | The raw Markdown of one initiative (brindley://initiative/<collection>/<number>) |
| initiatives#14 README front-matter controls what the dependency graph shows | The raw Markdown of one initiative (brindley://initiative/<collection>/<number>) |
| initiatives#15 Show in-progress work blocked on an open question | The raw Markdown of one initiative (brindley://initiative/<collection>/<number>) |
| initiatives#16 Resolve settled questions in bulk | The raw Markdown of one initiative (brindley://initiative/<collection>/<number>) |
| initiatives#17 Record why an initiative was abandoned | The raw Markdown of one initiative (brindley://initiative/<collection>/<number>) |
| initiatives#18 Work on the worktree the agent is implementing in | The raw Markdown of one initiative (brindley://initiative/<collection>/<number>) |
| initiatives#19 Scoring dimensions on initiatives | The raw Markdown of one initiative (brindley://initiative/<collection>/<number>) |
| initiatives#20 Configurable columns in the generated README tables | The raw Markdown of one initiative (brindley://initiative/<collection>/<number>) |
| initiatives#21 Computed scores such as WSJF | The raw Markdown of one initiative (brindley://initiative/<collection>/<number>) |
| initiatives#22 Release history and what's new on the docs site | The raw Markdown of one initiative (brindley://initiative/<collection>/<number>) |
| initiatives#23 Exclusions in docs globs | The raw Markdown of one initiative (brindley://initiative/<collection>/<number>) |
| initiatives#24 Opt-in status folders that Brindley keeps in step | The raw Markdown of one initiative (brindley://initiative/<collection>/<number>) |
| initiatives#25 Show where in-progress work is being built | The raw Markdown of one initiative (brindley://initiative/<collection>/<number>) |
| initiatives#26 Record the merge commit or PR when work is done | The raw Markdown of one initiative (brindley://initiative/<collection>/<number>) |
| initiatives#27 Inline the collection's agent file in the implement brief | The raw Markdown of one initiative (brindley://initiative/<collection>/<number>) |
| initiatives#28 Write and keep the agent rules in AGENTS.md / CLAUDE.md | The raw Markdown of one initiative (brindley://initiative/<collection>/<number>) |
| initiatives#29 Tag cloud in the collection README | The raw Markdown of one initiative (brindley://initiative/<collection>/<number>) |
| initiatives#30 One-page HTML progress dashboard | The raw Markdown of one initiative (brindley://initiative/<collection>/<number>) |
| initiatives#31 Spike: progress dashboard designs from git history | The raw Markdown of one initiative (brindley://initiative/<collection>/<number>) |
| initiatives#32 Split a compound open question into separate questions | The raw Markdown of one initiative (brindley://initiative/<collection>/<number>) |
| initiatives#33 Milestones | The raw Markdown of one initiative (brindley://initiative/<collection>/<number>) |
| initiatives#34 Serve the progress report live over local HTTP | The raw Markdown of one initiative (brindley://initiative/<collection>/<number>) |
| initiatives#35 Stable question labels instead of positional indexes | The raw Markdown of one initiative (brindley://initiative/<collection>/<number>) |
| initiatives#36 Check initiatives against the project's design principles | The raw Markdown of one initiative (brindley://initiative/<collection>/<number>) |
| initiatives#37 Publish to npm only through trusted publishing | The raw Markdown of one initiative (brindley://initiative/<collection>/<number>) |
| initiatives#38 Protect release tags and main | The raw Markdown of one initiative (brindley://initiative/<collection>/<number>) |
| initiatives#39 Restrict the npm deployment environment | The raw Markdown of one initiative (brindley://initiative/<collection>/<number>) |
| initiatives#40 Release only commits on main | The raw Markdown of one initiative (brindley://initiative/<collection>/<number>) |
| initiatives#41 Pin the release toolchain and keep it updated | The raw Markdown of one initiative (brindley://initiative/<collection>/<number>) |
| initiatives#42 Harden the maintainer's GitHub and npm accounts | The raw Markdown of one initiative (brindley://initiative/<collection>/<number>) |
| initiatives#43 Writes no longer regenerate READMEs | The raw Markdown of one initiative (brindley://initiative/<collection>/<number>) |
| initiatives#44 A JSON snapshot that every view renders from | The raw Markdown of one initiative (brindley://initiative/<collection>/<number>) |
| initiatives#45 Install Brindley as a Claude Code plugin | The raw Markdown of one initiative (brindley://initiative/<collection>/<number>) |
| initiatives#46 Submit the Brindley plugin to Anthropic's directory | The raw Markdown of one initiative (brindley://initiative/<collection>/<number>) |
| Theme: adoption | A theme as one document: its overview doc (if any), then every initiative tagged with it, across collections |
| Theme: dependency-links | A theme as one document: its overview doc (if any), then every initiative tagged with it, across collections |
| Theme: questions | A theme as one document: its overview doc (if any), then every initiative tagged with it, across collections |
| Theme: security | A theme as one document: its overview doc (if any), then every initiative tagged with it, across collections |
| Theme: status-recording | A theme as one document: its overview doc (if any), then every initiative tagged with it, across collections |
| Theme: text | A theme as one document: its overview doc (if any), then every initiative tagged with it, across collections |
TDQS
Scored across 35 tools
Most tools target a distinct resource+action: collections, initiatives, questions, dependencies, milestones, tags and docs each get their own verbs, and descriptions pre-empt common confusions (update says 'to change a recorded status, use set_status'; fix says 'padding is fixed by repad, numbers by renumber'). Residual overlap exists in the repair cluster (validate/fix/repad/renumber/tidy), the readiness pair (ready lists workable initiatives vs check_ready gates a single one) and update vs batch_update, but these are distinguishable with care.
There is an implicit split — bare-noun query tools (collections, tags, milestones, questions, fields, graph, report) and bare-verb mutation tools (create, update, get, complete, fix, tidy, repad, renumber) — alongside consistent verb_noun tools (set_status, add_question, check_ready, create_collection). This is readable and partly intentional, but it is not one predictable pattern: 'list' lacks a noun while 'collections' has no verb, and create/update sit next to create_collection/update_collection style names.
At 35 tools the surface is heavy for a ticket/initiative server; an agent must scan a long catalogue to find the right verb. Many are individually justified by the git-aware domain, but several clusters (fix/repad/renumber/tidy, validate/check_docs/check_ready) could be consolidated into fewer tools with mode parameters.
Coverage of the stated domain is strong: full initiative lifecycle (create/get/list/update/batch_update/set_status/complete), questions (add/split/resolve/next/list), dependencies and graph, collections management, milestones, tags, validation and repair, docs linting, briefs, reports and worktree switching. Minor gaps: no way to delete/remove an initiative (mitigated by abandoned/superseded statuses), no tool to create milestones or arbitrary docs, and no explicit search beyond list filters.