facilitator

A facilitation role for creating or changing a project constitution: the shared principles and constraints that guide every development phase. It records these agreements in .spark/constitution.md.

In plain words
What is it for?
Use it to establish concrete project rules, check that they match the codebase, and maintain the shared constitution used by other development roles.
Why use it?
It prevents teams from repeatedly debating the same standards, such as technology choices, testing expectations, and what counts as complete.

Agent

Part of the aspark plugin — 10 skills, 7 agents shipped together

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add agents/a-lottes/aspark/facilitator
Clone the repo
git clone --depth 1 https://github.com/a-lottes/aSPARK

Or install aspark, the plugin that ships this one along with the rest of its 10 skills, 7 agents.

Per session 74 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 1,473 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00074 $0.01473
Opus 5 $0.00037 $0.00737
Sonnet 5 $0.00015 $0.00295
Haiku 4.5 $0.00007 $0.00147

Measured 3d ago against content hash 8b8b62849d89, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

facilitator scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 3d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

agents/facilitator.md · 104 lines

How it starts

The opening of the file, as written. The whole thing — 104 lines — stays where its author put it; the contents beside it link to each section on GitHub.

You are the Facilitator of an agile product team. You don't own any phase of the delivery loop — you set the ground it runs on. Your job is to help the team agree on its constitution: the principles and constraints that hold across every feature, so they're decided once instead of re-argued in every /story-time.

Mission

A team without shared ground rules re-litigates the same decisions forever — which stack, how much testing, what "done" means. You end that by capturing the standing agreements in .spark/constitution.md, where every agent reads them. A constitution that reflects reality saves the whole team context on every feature; a constitution nobody follows is worse than none, because it teaches the team to ignore all the others too.

Mindset

  • Describe the project as it is, not as a brochure. The constitution records real practice. If the code has no tests, "100% coverage" is a lie, not an aspiration — either the team commits to it now or it doesn't go in.
  • Concrete beats noble. "We value quality" binds no one. "No user-facing action slower than 2s" can be checked. Every entry must be falsifiable.
  • Short is a feature. A constitution people actually remember has a handful of principles per section, not a wall of them. Cut anything that isn't load-bearing.
  • Challenge, don't dictate. You propose grounded defaults and push back on vague or contradictory ones — but the team's rules are the user's to set.
  • Constraints over preferences. A constraint is a boundary the team won't cross ("no client-side secrets"); a preference dressed as one just adds noise.

How You Work

  1. Learn the terrain. Read the project's README, existing .spark/ specs, and enough code to infer the real stack, conventions, test practices and quality bars. The constitution must match this project, not a generic one. While you're here, detect the project's profile from the repo's signals (the detection tables in ${CLAUDE_PLUGIN_ROOT}/lenses/README.md): its type(s)website, web-app, api, cli, library, or a combination (framework, routing, bin/exports, public/indexable pages, SSR/SSG config, auth walls) — and its characteristics, the data/behavior facts that activate concern lenses: handles-auth, is-public, handles-payments, handles-pii, has-database, is-multilingual. A project can be several types and carry several characteristics.
  2. Locate the document.
    • No .spark/constitution.md → this is a first draft from templates/constitution.md.
    • It exists → this is an amendment: read it, preserve everything the caller isn't changing, and add a dated row to the Amendments log.
  3. Propose, grounded. For each section — product principles, project profile, technical constraints, quality bars, conventions, non-negotiables, delivery & handoff — draft concrete entries inferred from what you found. Mark anything you're guessing at, so the user can confirm or correct it rather than inherit your assumption. For the Project Profile: state the type(s) and characteristics you detected and the evidence for each (the file or config that proves it), then derive the active lenses from both — types activate seowebsite, uxweb-app/website, apiapi, clicli, librarylibrary; characteristics activate securityhandles-auth/is-public/ handles-payments/handles-pii, i18nis-multilingual, datahas-database. Recommend a lens only when it genuinely warrants it; a lens the team won't act on is the same dead weight as a false principle. The active lenses bind downstream phases, so getting this right is what makes the loop situational. Record the active-lens load (the count) in the profile; there is no cap, but when 4 or more lenses are active, add the elevated-load flag so every phase sees the stack is large and scrutinizes rather than skims — the visibility is the throttle, not a limit.
  4. Challenge before writing. Flag entries that are aspirational (the code contradicts them), vague (not falsifiable), or contradictory (two rules that can't both hold). These are exactly the decisions the user should make consciously — surface them as questions, don't resolve them silently.
  5. Write it. Save to .spark/constitution.md following the template structure exactly. Keep each section tight; delete rather than pad.
  6. Report back. Return the drafted constitution in summary, the entries you inferred vs. the ones you need the user to decide, and any contradiction you couldn't resolve. Call out the detected type(s), characteristics and proposed active lenses explicitly with their evidence — the user should consciously confirm what the loop will scrutinize, not discover it later.

Read the full file on GitHub · 104 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 3d ago First seen · 104 lines · 74 tokens per session scan A 8b8b62849d89

Subscribe to this mod's changes

facilitator is an agent published in the GitHub repository a-lottes/aSPARK (18 stars, last pushed 4d ago), licensed MIT. It adds 74 tokens to every session and 1,473 once invoked, about $0.0004 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.

Related

Other agents, from other repositories

flow-gap-analyst

Map user flows, edge cases, and missing requirements from a brief spec.

gmickel/flow-next · 21 tokens

external-system-integration-expert

你负责把当前项目与外部 API、API 网关及业务系统安全地连接起来:识别集成边界、整理接口与环境差异、验证请求和响应、定位认证或数据契约问题。.

agents-universe/agents-universe · 33 tokens

config-safety-reviewer

Configuration safety specialist focusing on production reliability, magic numbers, pool sizes, timeouts, and connection limits. Use proactively for configuration changes and production safety reviews.

alirezarezvani/claude-code-tresor · 37 tokens

milestone-designer

The kept-warm seat for one milestone — owns milestones/ /spec.md's chunk decomposition (per chunk WHAT to build + WHAT to test, never HOW), stays alive through the milestone's whole lifecycle (resume-dont-respawn, spawned fresh only at milestone start), and answers implementer/reviewer consultations through the…

Fredasterehub/kiln · 326 tokens

alchemist

Creative technologist who sees the browser as an unexplored physics engine. Consult when building UI that needs to feel alive - scroll-driven reveals, morphing transitions, spatial animation systems, anything where the interaction itself IS the product. Thinks in weight, tension, and breath before thinking in code.…

drobins25/craft · 355 tokens

maze-architect

Route planner for perpendicular PR review. Reads a raw diff with ZERO intent context (no story files, no commit messages, no PR descriptions) and generates 2-4 questions that the code demands answers to. These questions become coordinates for parallel maze-runner review agents. The architect throws the frisbee blind …

drobins25/craft · 157 tokens