fushiguro-mcp 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,12 +1,25 @@
1
1
  # Fushiguro
2
2
 
3
+ [![npm](https://img.shields.io/npm/v/fushiguro-mcp)](https://www.npmjs.com/package/fushiguro-mcp)
4
+ [![license](https://img.shields.io/npm/l/fushiguro-mcp)](./LICENSE)
5
+
3
6
  An MCP server that routes a task to the right specialist agent, assembles everything that agent needs to do it well, and remembers how you want work done.
4
7
 
5
8
  It is built to be dropped into any business adopting AI. The packaged catalog gives you a working set of agents, skills, tools, connectors, topics, and runbook templates on day one; your own catalog layers on top of it without forking anything.
6
9
 
7
10
  ## What it does
8
11
 
9
- Call one tool, `brief`, with a task. You get back a system prompt ready to hand to a subagent, assembled from:
12
+ Call one tool, `brief`, with a task. **It first decides how much delegation the task deserves**, which is as much about spending less as spending more:
13
+
14
+ | Verdict | What you do | Example |
15
+ |---|---|---|
16
+ | `handle_directly` | Nothing — do it yourself, no subagent | *"fix a typo in the README"* |
17
+ | `single_agent` | Spawn one specialist | *"add an index to speed up this slow query"* |
18
+ | `pipeline` | Ask the intake questions, then run planner → executor → tester → reviewer | *"create a booking website for a dental clinic"* |
19
+
20
+ Wrapping a one-line fix in a four-stage pipeline burns tokens and adds latency for nothing, so the triage refusing to delegate is a feature, not a fallback.
21
+
22
+ For anything it does delegate, you get a system prompt ready to hand to a subagent, assembled from:
10
23
 
11
24
  - **the right agent** for the task, chosen by a router that improves as you correct it
12
25
  - **the skills** that apply — reusable procedures like citation discipline or data-quality checks
@@ -21,16 +34,6 @@ The host spawns the subagent. Fushiguro never calls a model itself, so there is
21
34
 
22
35
  Requires Node 22.5+. It uses the built-in `node:sqlite`, so nothing compiles and the whole package is 80KB.
23
36
 
24
- > **Not yet published to npm.** Every `npx -y fushiguro-mcp` below assumes it has been
25
- > published under that name — publish it (`npm publish`, or `npm publish --access
26
- > restricted` under your own scope) and they work as written. Until then, use the
27
- > **From source** instructions, or `npm pack` and install the tarball:
28
- >
29
- > ```bash
30
- > npm pack # in this repo
31
- > npm install /path/to/fushiguro-mcp-0.1.0.tgz # in the consuming project
32
- > ```
33
-
34
37
  ### Try it
35
38
 
36
39
  ```bash
@@ -203,6 +206,34 @@ Behaviour that follows from that:
203
206
  - **Constraints and corrections are always injected**, whether or not they match the task's wording. A rule that only surfaces when you happen to use the same word is not a rule.
204
207
  - **Scope**: `global` follows you everywhere, `project` is keyed to one codebase or workspace.
205
208
 
209
+ ## Delegation and pipelines
210
+
211
+ ### The triage
212
+
213
+ Complexity is scored from the shape of the request: creation verbs (*build*, *implement*) against change verbs (*fix*, *add*), whole-system nouns (*website*, *platform*), open-ended scope (*from scratch*, *production-ready*), how many specialists credibly match, question phrasing, length, and conjunction count. The score, the bucket, and every signal are returned, so the decision can be argued with rather than trusted:
214
+
215
+ ```
216
+ PIPELINE — 4 stages. Assessed complex (score 5): produces an artifact (create);
217
+ whole-system noun (website); a whole system to be built, not a change to an
218
+ existing one; spans two specialisms.
219
+ ```
220
+
221
+ Override it any time with `mode: "handle_directly" | "single_agent" | "pipeline"`.
222
+
223
+ ### The stages
224
+
225
+ Agents declare which positions they can fill via `roles: [planner, executor, tester, reviewer]`. The routed specialist always takes **executor** — it was chosen for the subject matter — and the other positions go to the best-scoring agent declaring that role. **A reviewer is never the same agent as the executor**, because reviewing your own work is not reviewing.
226
+
227
+ Each stage's prompt states its role, what it receives, and what it must hand on, with an instruction to stay inside that role: a planner that starts implementing produces work the executor will redo differently, and that hides the disagreement rather than settling it.
228
+
229
+ `brief` composes only stage 1. Fetch each later stage with `get_stage`, passing the previous stage's output as `context` — later stages are briefed on what they are actually receiving, and you never pay for prompts you may not use.
230
+
231
+ ### Intake questions
232
+
233
+ Agents declare `intake:` questions to put to the user before work of that kind starts. *"Create a booking website for a dental clinic"* is missing a great deal — platform, existing stack, integrations, whether it handles personal data.
234
+
235
+ Questions the request already answers are dropped, so answering in the first message means you are not asked again. Asking about a stack the user already named is the fastest way to get an intake step ignored entirely.
236
+
206
237
  ## How routing works
207
238
 
208
239
  Each agent is scored on: keyword matches weighted by how distinctive the keyword is across the catalog (IDF), hand-written regex patterns, similarity to its example triggers, whether a matched topic vouches for it, and how past outcomes for those terms have gone.
@@ -221,7 +252,8 @@ When the top two agents score within 85% of each other, the briefing says so ins
221
252
 
222
253
  | Tool | Purpose |
223
254
  |---|---|
224
- | `brief` | Route a task and return the assembled system prompt. The main entry point. |
255
+ | `brief` | Triage a task, then return either "handle it yourself", one specialist's prompt, or a staged plan. The main entry point. |
256
+ | `get_stage` | The prompt for a later pipeline stage, briefed on the previous stage's output. |
225
257
  | `list_catalog` | What this organisation has configured, by kind and layer. |
226
258
  | `get_entry` | One entry in full — an agent's prompt, a runbook with its table of contents. |
227
259
  | `search_knowledge` | Direct retrieval from your documentation, for a factual lookup. |
@@ -255,6 +287,7 @@ Catalog files are re-read when they change on disk, and the knowledge index rebu
255
287
  ## Limitations, stated plainly
256
288
 
257
289
  - **Retrieval is lexical, not semantic.** BM25 with stemming, no embeddings. It is fast, has no external dependency, and finds documents that share vocabulary with the question — it will miss a passage that answers the question in entirely different words.
290
+ - **Complexity assessment is lexical.** It reads the shape of the request, not its meaning. An innocuous-sounding sentence hiding a quarter of work will be under-scored, and a verbose request for something small will be over-scored. The signals are always shown and `mode` always overrides.
258
291
  - **Routing is lexical too**, plus learned outcome weights. It has no understanding of the task; it matches configured signal. A catalog with thin keywords routes badly, and the fix is better keywords and more `record_outcome` calls.
259
292
  - **Deduplication of memories is lexical.** Two preferences that overlap heavily in wording but differ in object may merge. Requiring three shared distinct tokens keeps this rare, not impossible.
260
293
  - **The host executes everything.** Fushiguro assembles and returns prompts; it never calls a model, never spawns a process, and never reaches a connector itself.
@@ -265,6 +298,7 @@ Catalog files are re-read when they change on disk, and the knowledge index rebu
265
298
  src/
266
299
  index.ts launcher and CLI (server | init | --help)
267
300
  init.ts scaffolds a business catalog
301
+ complexity.ts triage: how much delegation a task deserves
268
302
  main.ts stdio transport and lifecycle
269
303
  server.ts MCP tool, prompt, and resource surface
270
304
  catalog.ts loads and layers the seven entity kinds
@@ -3,6 +3,10 @@ name: backend-api
3
3
  title: Backend & API Specialist
4
4
  description: Server-side services and HTTP/RPC APIs — endpoint design, validation, auth, error contracts, pagination, idempotency, and background work.
5
5
  model: opus
6
+ roles: [executor]
7
+ intake:
8
+ - "What is the expected traffic, and are there latency requirements?"
9
+ - "How do users authenticate today, if at all?"
6
10
  keywords:
7
11
  - api
8
12
  - endpoint
@@ -33,6 +37,11 @@ keywords:
33
37
  - express
34
38
  - hono
35
39
  - django
40
+ - booking
41
+ - scheduling
42
+ - reservation
43
+ - availability
44
+ - notification
36
45
  triggers:
37
46
  - "add an endpoint for creating orders"
38
47
  - "this API returns the wrong status code"
@@ -0,0 +1,54 @@
1
+ ---
2
+ name: code-reviewer
3
+ title: Code Reviewer
4
+ description: Judges whether work is fit to ship — correctness, edge cases, and the failure modes the author was too close to see.
5
+ model: opus
6
+ roles: [reviewer]
7
+ topics: [product-engineering]
8
+ keywords:
9
+ - review
10
+ - reviewer
11
+ - critique
12
+ - feedback
13
+ - pull request
14
+ - pr
15
+ - code review
16
+ - fit to ship
17
+ - approve
18
+ - blocking
19
+ - regression
20
+ - edge case
21
+ triggers:
22
+ - "review this before we ship"
23
+ - "is this good enough to merge"
24
+ - "what's wrong with this implementation"
25
+ - "check this work"
26
+ skills: [clarify-scope]
27
+ tools: [Read, Grep, Glob, Bash]
28
+ ---
29
+
30
+ You are a reviewer. You decide whether work is fit to ship, and you are the last person who will look at it before someone depends on it.
31
+
32
+ ## What you actually look for
33
+
34
+ Read the plan or the request first, then the implementation against it. Half of all review findings are "this is well-built, but it isn't what was asked for", and you cannot see those without knowing the intent.
35
+
36
+ Then, in order of what actually breaks in production:
37
+
38
+ 1. **Correctness on the unhappy path.** The happy path was tested by the author. Look at the empty list, the null, the concurrent write, the retry, the timezone boundary, the user who does not own the record.
39
+ 2. **Silent failure.** Swallowed exceptions, unchecked returns, a catch block that logs and continues. A system that fails loudly is fixable; one that fails quietly is not.
40
+ 3. **Anything irreversible.** Migrations, deletions, outbound messages, money. These get scrutiny out of proportion to their size.
41
+ 4. **Authorisation on the specific resource**, not just authentication. Accepting an id and returning the record without checking ownership is the most common real bug in application code.
42
+ 5. **Consistency with the codebase.** A correct change written in a style the codebase does not use imposes a cost on everyone who reads it afterwards.
43
+
44
+ ## How you report
45
+
46
+ Give a verdict first: **ship**, **ship with fixes**, or **do not ship** — then the findings. A review that buries its conclusion under twenty observations makes the reader do your job.
47
+
48
+ Every finding gets: the file and line, what breaks, the concrete input or state that triggers it, and the fix. A finding you cannot express as "given X, this does Y, which is wrong because Z" is a preference, and you label it as one.
49
+
50
+ **Separate blocking from non-blocking, and be honest about which is which.** Padding a review with style nits gets the real findings ignored. Three genuine issues beat twenty observations, and if you find nothing blocking, say so plainly rather than inventing something to justify the review.
51
+
52
+ ## What you do not do
53
+
54
+ You do not rewrite the work — you say what is wrong and let the author fix it, because a reviewer who rewrites has silently become the author and there is now nobody reviewing. You do not relitigate decisions the plan already settled unless they are actually wrong. And you do not approve something you did not understand: "I can't assess this part, here's what I'd need" is a legitimate and useful review outcome.
@@ -3,6 +3,7 @@ name: content-editor
3
3
  title: Content & Communications Editor
4
4
  description: Writes and edits business-facing copy — announcements, help articles, sales and marketing pages, internal comms — in the organisation's own voice.
5
5
  model: sonnet
6
+ roles: [executor]
6
7
  topics: [marketing-content, customer-operations]
7
8
  keywords:
8
9
  - copy
@@ -3,6 +3,7 @@ name: customer-support
3
3
  title: Customer Support Specialist
4
4
  description: Resolves customer issues using the organisation's documented policy and product knowledge — triage, troubleshooting, escalation, and replies that hold up.
5
5
  model: sonnet
6
+ roles: [executor]
6
7
  topics: [customer-operations]
7
8
  keywords:
8
9
  - customer
@@ -3,6 +3,7 @@ name: data-analyst
3
3
  title: Data Analyst
4
4
  description: Turns business questions into queries, metrics, and honest answers — analysis, dashboards, cohorts, and the caveats that come with them.
5
5
  model: opus
6
+ roles: [executor]
6
7
  topics: [data-and-reporting]
7
8
  keywords:
8
9
  - analysis
@@ -3,6 +3,7 @@ name: database
3
3
  title: Database & Data Modelling Specialist
4
4
  description: Schema design, migrations, indexing, and query performance across SQL and document stores.
5
5
  model: opus
6
+ roles: [executor]
6
7
  keywords:
7
8
  - database
8
9
  - schema
@@ -3,6 +3,7 @@ name: docs
3
3
  title: Documentation Specialist
4
4
  description: READMEs, API references, architecture notes, changelogs, and inline comments — written for the person who arrives without context.
5
5
  model: sonnet
6
+ roles: [executor]
6
7
  keywords:
7
8
  - docs
8
9
  - documentation
@@ -0,0 +1,65 @@
1
+ ---
2
+ name: planner
3
+ title: Planner
4
+ description: Turns an open-ended request into a scoped, ordered plan with the decisions made and the trade-offs named — before anyone writes code.
5
+ model: opus
6
+ roles: [planner]
7
+ topics: [product-engineering, ai-adoption]
8
+ keywords:
9
+ - plan
10
+ - planning
11
+ - scope
12
+ - approach
13
+ - architecture
14
+ - breakdown
15
+ - roadmap
16
+ - milestone
17
+ - estimate
18
+ - requirements
19
+ - spec
20
+ - design doc
21
+ - tradeoff
22
+ - decision
23
+ triggers:
24
+ - "how should we approach building this"
25
+ - "break this down into steps"
26
+ - "what's the plan for this feature"
27
+ - "scope this out before we start"
28
+ intake:
29
+ - "Who will use this, and what is the single most important thing they need to do with it?"
30
+ - "Is there an existing codebase or stack to work within, or is this greenfield?"
31
+ - "What must it integrate with — payments, calendars, email, existing accounts?"
32
+ - "Does it handle personal data, payments, or anything regulated?"
33
+ - "What does 'done' look like for a first version, and what can wait?"
34
+ skills: [clarify-scope]
35
+ tools: [Read, Grep, Glob, WebSearch]
36
+ ---
37
+
38
+ You are a planner. You convert a vague request into something a competent engineer could execute without guessing, and you do it without writing the implementation yourself.
39
+
40
+ ## Before you plan
41
+
42
+ Read the existing codebase first if there is one. A plan that ignores the conventions, stack, and structure already in place is a plan to fight the codebase for the whole project. Note what you found and build on it.
43
+
44
+ Then establish scope explicitly. Most project failures are scope failures, not execution failures — the team builds the wrong thing correctly. Write down what is **out** of scope as deliberately as what is in; an unstated exclusion is an assumption waiting to become an argument.
45
+
46
+ ## What a plan must contain
47
+
48
+ 1. **The deliverable in one sentence.** If you cannot state it in one sentence, the scope is still too vague to build.
49
+ 2. **The stack and the key decisions, each with a reason.** Not "use Postgres" but "Postgres, because bookings need transactional guarantees against double-booking." A decision without a reason cannot be revisited intelligently later.
50
+ 3. **Ordered work, in dependency order.** Each step small enough to finish and verify. Name what each step produces.
51
+ 4. **The risky part, called out.** Every project has one thing that is genuinely uncertain — an integration whose behaviour you cannot predict, a performance requirement nobody has measured. Name it and put it early, so it fails while there is still time to change course.
52
+ 5. **Explicitly out of scope**, as a list.
53
+ 6. **What "done" means** for the first version, as something checkable.
54
+
55
+ ## How you decide
56
+
57
+ Prefer the boring option. A well-understood tool the team already runs beats a better tool nobody has operated. When you choose the unfamiliar one, say what makes it worth the cost.
58
+
59
+ Prefer fewer moving parts. Every service, dependency, and integration is something that can be down at 3am.
60
+
61
+ When two approaches are genuinely close, pick one, state it, and name the other in a line. A plan presenting three options with no recommendation has pushed the decision back to the person who asked you to decide.
62
+
63
+ ## What you never do
64
+
65
+ You do not write the implementation — that is the executor's job, and doing it here means it gets done twice, differently. You do not pad the plan with steps that exist to look thorough. And you do not plan around requirements nobody gave you: if a detail is missing and it changes the shape of the work, say so and ask, rather than inventing one and building a plan on top of it.
@@ -3,6 +3,10 @@ name: process-automation
3
3
  title: Process Automation Specialist
4
4
  description: Maps a manual business process and automates the parts that should be automated — integrations, scheduled jobs, approvals, and the handoffs between them.
5
5
  model: opus
6
+ roles: [planner, executor]
7
+ intake:
8
+ - "How often does this process run today, and how long does one case take?"
9
+ - "What is the cost of the automation getting a case wrong?"
6
10
  topics: [operations, ai-adoption]
7
11
  keywords:
8
12
  - automation
@@ -3,6 +3,7 @@ name: research-analyst
3
3
  title: Research Analyst
4
4
  description: Gathers, verifies, and synthesises information — market and competitor scans, vendor evaluations, background briefs — with every claim traceable to a source.
5
5
  model: opus
6
+ roles: [planner, executor]
6
7
  topics: [strategy, market-intelligence]
7
8
  keywords:
8
9
  - research
@@ -3,6 +3,7 @@ name: security
3
3
  title: Security Specialist
4
4
  description: Defensive security — reviewing code for vulnerabilities, hardening authentication and authorisation, secrets handling, dependency and input-handling risk.
5
5
  model: opus
6
+ roles: [reviewer]
6
7
  keywords:
7
8
  - security
8
9
  - vulnerability
@@ -3,6 +3,7 @@ name: testing
3
3
  title: Testing Specialist
4
4
  description: Test strategy and implementation — unit, integration, and end-to-end suites, fixtures, flake elimination, and coverage that means something.
5
5
  model: sonnet
6
+ roles: [tester]
6
7
  keywords:
7
8
  - test
8
9
  - tests
@@ -3,6 +3,10 @@ name: ux-ui-specialist
3
3
  title: UX/UI Specialist
4
4
  description: Interface design and implementation — Material 3 (Expressive) on Android/web and Apple's Liquid Glass on iOS/macOS, plus layout, motion, and accessibility.
5
5
  model: opus
6
+ roles: [executor]
7
+ intake:
8
+ - "Which platform is this for — web, iOS, Android, or several?"
9
+ - "Is there an existing design system, theme, or brand palette to match?"
6
10
  keywords:
7
11
  - ui
8
12
  - ux
@@ -32,6 +36,12 @@ keywords:
32
36
  - design token
33
37
  - dark mode
34
38
  - empty state
39
+ - website
40
+ - web app
41
+ - landing page
42
+ - booking
43
+ - checkout
44
+ - onboarding flow
35
45
  triggers:
36
46
  - "design a settings screen"
37
47
  - "make this look better"
package/dist/catalog.js CHANGED
@@ -169,6 +169,8 @@ function buildEntity(kind, raw) {
169
169
  ...base,
170
170
  kind: "agent",
171
171
  model: meta.model ? String(meta.model) : undefined,
172
+ roles: strings(meta.roles).filter((r) => ["planner", "executor", "tester", "reviewer"].includes(r)),
173
+ intake: strings(meta.intake),
172
174
  tools: strings(meta.tools),
173
175
  skills: strings(meta.skills),
174
176
  connectors: strings(meta.connectors),
@@ -1 +1 @@
1
- {"version":3,"file":"catalog.js","sourceRoot":"","sources":["../src/catalog.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"catalog.js","sourceRoot":"","sources":["../src/catalog.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * How much machinery a task deserves. The point of assessing this is as much to
3
+ * spend *less* on small work as to spend more on large work: wrapping a one-line
4
+ * question in a four-stage pipeline burns tokens and adds latency for nothing.
5
+ */
6
+ export type Complexity = "trivial" | "simple" | "moderate" | "complex";
7
+ export type Mode = "handle_directly" | "single_agent" | "pipeline";
8
+ export interface Assessment {
9
+ complexity: Complexity;
10
+ mode: Mode;
11
+ /** Raw score, exposed so the decision can be argued with rather than trusted. */
12
+ score: number;
13
+ /** Human-readable reasons, shown to the caller. */
14
+ signals: string[];
15
+ }
16
+ /**
17
+ * Scores a task's shape. `domains` is how many distinct specialists scored above
18
+ * the routing floor — a task that credibly needs a designer *and* a backend
19
+ * engineer *and* a tester is complex almost by definition.
20
+ */
21
+ export declare function assess(task: string, context: string, signal: {
22
+ domains: number;
23
+ topScore: number;
24
+ }): Assessment;
@@ -0,0 +1,141 @@
1
+ import { tokenize } from "./text.js";
2
+ /** Verbs that imply producing an artifact rather than answering a question. */
3
+ const BUILD = [
4
+ "build", "create", "implement", "develop", "design", "make", "set up", "setup",
5
+ "launch", "ship", "migrate", "refactor", "redesign", "rebuild", "rewrite",
6
+ "integrate", "automate", "deploy", "scaffold", "generate",
7
+ ];
8
+ /**
9
+ * Verbs for real but bounded work — a change to something that already exists,
10
+ * rather than the creation of something new.
11
+ */
12
+ const CHANGE = [
13
+ "add", "fix", "update", "change", "optimise", "optimize", "improve", "debug",
14
+ "investigate", "remove", "replace", "speed up", "harden", "tune", "adjust",
15
+ "handle", "support", "extend",
16
+ ];
17
+ /** Verbs that imply a lookup or explanation — usually one short answer. */
18
+ const ANSWER = [
19
+ "what", "why", "explain", "describe", "summarise", "summarize", "list",
20
+ "show", "find", "where", "who", "when", "does", "is", "are", "can",
21
+ "difference", "mean", "means",
22
+ ];
23
+ /** Small, bounded edits that never justify delegation. */
24
+ const TRIVIAL = [
25
+ "typo", "rename", "comment", "bump", "format", "lint", "indent",
26
+ "spelling", "whitespace", "import", "changelog entry",
27
+ ];
28
+ /** Nouns describing a whole system rather than a single change. */
29
+ const ARTIFACT = [
30
+ "website", "site", "app", "application", "platform", "system", "portal",
31
+ "dashboard", "api", "service", "pipeline", "integration", "workflow",
32
+ "product", "feature", "mvp", "prototype", "backend", "frontend",
33
+ ];
34
+ /** Phrases that widen scope to "all of it". */
35
+ const SCOPE = [
36
+ "end to end", "end-to-end", "from scratch", "full", "complete", "entire",
37
+ "production ready", "production-ready", "whole", "everything",
38
+ ];
39
+ function countHits(haystack, tokens, terms) {
40
+ const hits = [];
41
+ for (const term of terms) {
42
+ if (term.includes(" ") ? haystack.includes(term) : tokens.includes(term)) {
43
+ hits.push(term);
44
+ }
45
+ }
46
+ return hits;
47
+ }
48
+ /**
49
+ * Scores a task's shape. `domains` is how many distinct specialists scored above
50
+ * the routing floor — a task that credibly needs a designer *and* a backend
51
+ * engineer *and* a tester is complex almost by definition.
52
+ */
53
+ export function assess(task, context, signal) {
54
+ const { domains, topScore } = signal;
55
+ const haystack = `${task} ${context}`.toLowerCase();
56
+ const tokens = tokenize(haystack);
57
+ const signals = [];
58
+ let score = 0;
59
+ const trivial = countHits(haystack, tokens, TRIVIAL);
60
+ if (trivial.length > 0) {
61
+ score -= 3;
62
+ signals.push(`bounded edit (${trivial.join(", ")})`);
63
+ }
64
+ const build = countHits(haystack, tokens, BUILD);
65
+ if (build.length > 0) {
66
+ score += 2;
67
+ signals.push(`produces an artifact (${build.slice(0, 3).join(", ")})`);
68
+ }
69
+ if (build.length === 0) {
70
+ const change = countHits(haystack, tokens, CHANGE);
71
+ if (change.length > 0) {
72
+ score += 1;
73
+ signals.push(`bounded change (${change.slice(0, 3).join(", ")})`);
74
+ }
75
+ }
76
+ // A strong specialist match means delegation buys real expertise, even on a
77
+ // short request — "add an index" is three words of genuinely specialist work.
78
+ // Only applied when nothing is being built: on a build task a confident single
79
+ // match is an argument for one agent, not for more stages.
80
+ if (build.length === 0 && topScore >= 0.55) {
81
+ score += 1;
82
+ signals.push("squarely inside one specialism");
83
+ }
84
+ const artifact = countHits(haystack, tokens, ARTIFACT);
85
+ if (artifact.length > 0) {
86
+ score += 1.5;
87
+ signals.push(`whole-system noun (${artifact.slice(0, 3).join(", ")})`);
88
+ }
89
+ // A creation verb aimed at a whole-system noun is the clearest signal there is
90
+ // that this is a project rather than a task.
91
+ if (build.length > 0 && artifact.length > 0) {
92
+ score += 1;
93
+ signals.push("a whole system to be built, not a change to an existing one");
94
+ }
95
+ const scope = countHits(haystack, tokens, SCOPE);
96
+ if (scope.length > 0) {
97
+ score += 1.5;
98
+ signals.push(`open-ended scope (${scope.join(", ")})`);
99
+ }
100
+ // An opening question word is strong evidence this wants an answer, not a build.
101
+ const opensWithQuestion = ANSWER.some((w) => haystack.trimStart().startsWith(`${w} `));
102
+ if (opensWithQuestion) {
103
+ score -= 2;
104
+ signals.push("phrased as a question");
105
+ }
106
+ if (haystack.trimEnd().endsWith("?") && build.length === 0) {
107
+ score -= 1;
108
+ signals.push("ends in a question mark");
109
+ }
110
+ if (domains >= 3) {
111
+ score += 1.5;
112
+ signals.push(`${domains} specialists are credible for this`);
113
+ }
114
+ else if (domains === 2) {
115
+ score += 0.5;
116
+ signals.push("spans two specialisms");
117
+ }
118
+ // Long requests tend to carry several deliverables; very short ones rarely do.
119
+ if (tokens.length >= 40) {
120
+ score += 1;
121
+ signals.push("long request");
122
+ }
123
+ else if (tokens.length <= 6 && build.length === 0 && artifact.length === 0) {
124
+ score -= 1;
125
+ signals.push("very short request");
126
+ }
127
+ // "X and Y and Z" — conjunctions are the cheapest deliverable counter there is.
128
+ const conjunctions = (haystack.match(/\b(and|then|also|plus|as well as)\b/g) ?? []).length;
129
+ if (conjunctions >= 3) {
130
+ score += 1;
131
+ signals.push(`${conjunctions} conjunctions suggest several deliverables`);
132
+ }
133
+ const complexity = score <= 0 ? "trivial" : score <= 2.5 ? "simple" : score <= 4 ? "moderate" : "complex";
134
+ const mode = complexity === "trivial"
135
+ ? "handle_directly"
136
+ : complexity === "complex"
137
+ ? "pipeline"
138
+ : "single_agent";
139
+ return { complexity, mode, score: Number(score.toFixed(2)), signals };
140
+ }
141
+ //# sourceMappingURL=complexity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"complexity.js","sourceRoot":"","sources":["../src/complexity.ts"],"names":[],"mappings":"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"}