@bridge_gpt/mcp-server 0.2.0 → 0.2.2

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.
@@ -22,7 +22,7 @@
22
22
  },
23
23
  {
24
24
  "type": "agent_task",
25
- "instruction_file": "execute-plan-sectioned.md",
25
+ "instruction_file": "execute-plan.md",
26
26
  "description": "Execute the implementation plan"
27
27
  },
28
28
  {
@@ -58,31 +58,5 @@
58
58
  "instruction_file": "monitor-ci-checks.md",
59
59
  "description": "Monitor CI checks and report results"
60
60
  }
61
- ],
62
- "tiered_executor_policy": {
63
- "supported_hosts": ["claude_code"],
64
- "sequential_only": true,
65
- "tier_model_mapping": {
66
- "cheap": "haiku",
67
- "basic": "sonnet",
68
- "premium": "opus"
69
- },
70
- "final_review_policy": {
71
- "default": "premium_whole_diff_when_below_coordinator_tier_touched_code",
72
- "skip_when": "entire_run_inline_default_at_coordinator_tier"
73
- },
74
- "escalation_policy": {
75
- "max_section_escalations": 1,
76
- "allowed_hops": {
77
- "cheap": "basic",
78
- "basic": "premium"
79
- },
80
- "final_review_fix_reverify_passes": 1
81
- },
82
- "budget_policy": {
83
- "cache_hit_rate_source": "measurement_spike_go_marker",
84
- "default_cache_hit_rate": 0.0,
85
- "abort_mode": "inline_default"
86
- }
87
- }
61
+ ]
88
62
  }
@@ -85,7 +85,10 @@ Ask the user for the following before making any tool calls:
85
85
  to be readable — comments, attachments, tracked state, and generated
86
86
  artifacts are all optional.
87
87
  2. **Optional:** a **config field name** (for `get_config_field`).
88
- 3. **Optional:** a **pipeline name** (for `get_pipeline_recipe`).
88
+ 3. **Optional:** a **pipeline name** (for `get_pipeline_recipe`) — either a
89
+ no-variable pipeline name (e.g. `learn-repository`) or, for a
90
+ variable-declaring pipeline, the variable values it needs (e.g. a
91
+ `ticket_key`).
89
92
  4. **Optional:** an **attachment identifier or filename** (for
90
93
  `download_attachment` / `list_attachments`).
91
94
  5. **Optional:** any **artifact or task IDs** (e.g. a `task_id`, `brainstorm_id`,
@@ -179,6 +182,24 @@ all local writes:
179
182
  - A **host boolean-serialization rejection during the dedicated boolean probe**
180
183
  (Phase 7) is a **`WARN`** for host behavior — **not** an MCP server `FAIL`.
181
184
 
185
+ ### Heavy-read truncation grading
186
+
187
+ There are **five heavy-read tools** whose successful oversized output is saved to
188
+ disk before a truncated inline preview is returned: `get_project_standards`,
189
+ `get_tickets`, `get_ticket`, `get_comments`, and `list_attachments`.
190
+
191
+ - When a heavy-read response begins with `[Response truncated. Full response
192
+ saved locally.]` and carries a `Saved to <path>` note, grade it **`PASS`** as
193
+ long as the saved `<path>` is contained under the `get_docs_dir` result. The
194
+ truncation banner is the **expected** large-payload behavior, never a `FAIL`.
195
+ - `get_project_standards` is a zero-input read that may exceed the inline
196
+ threshold; when it does, the full payload is saved under a `project-standards/`
197
+ subdirectory of the docs directory and only a truncated preview is returned
198
+ inline.
199
+ - To exercise the truncation banner live, point the run at a known-large fixture
200
+ — a busy ticket with long comments, a broad `get_tickets` query, or a repo with
201
+ large project standards.
202
+
182
203
  ---
183
204
 
184
205
  ## Phase 3 — Default Pass
@@ -226,14 +247,32 @@ supplied the relevant input; otherwise record `SKIP_USER_INPUT`.
226
247
  - `get_ticket_state`, `get_jira_transitions`, `resolve_target_status` — the
227
248
  ticket key.
228
249
  - `get_config_field` — the optional config field name.
229
- - `get_pipeline_recipe` — the optional pipeline name.
250
+ - `get_pipeline_recipe` — a pipeline name. When no variables are supplied, use a
251
+ no-variable pipeline such as `learn-repository` as the smoke target. A
252
+ variable-declaring pipeline (e.g. a ticket-based pipeline) requires a
253
+ `variables` map such as `{ "ticket_key": "<user ticket>" }`. A `400
254
+ BAD_REQUEST` with `Missing required variable(s)` is **working as designed**, not
255
+ a server fault — rerun with the required variables or pick a no-variable
256
+ pipeline.
230
257
  - `list_attachments` / `download_attachment` — the optional attachment input.
231
- - The artifact retrievers `get_architecture`, `get_clarifying_questions`,
232
- `get_ticket_critique`, `get_reimplement_context`, `get_deep_research`,
233
- `get_brainstorm` grade a clean empty result as `PASS_EXPECTED_404` and valid
234
- content as `PASS`.
235
- - `poll_ci_checks` see the matrix note; `SKIP_NOT_APPLICABLE` when CI is not
236
- configured.
258
+ - The clean-empty artifact retrievers `get_architecture`,
259
+ `get_clarifying_questions`, `get_ticket_critique` — grade a clean empty result
260
+ as `PASS_EXPECTED_404` and valid content as `PASS`.
261
+ - `get_reimplement_context` — can return **live-assembled, non-empty content**
262
+ even for an untracked or previously unprocessed ticket. Grade valid returned
263
+ content as `PASS`; a clean 404 is `PASS_EXPECTED_404`. It is **not** a
264
+ clean-empty-only retriever.
265
+ - `get_ticket_state` — in a v1 read-only run this can only confirm the clean
266
+ "not tracked" 404 path unless a prior state-populating submit has occurred.
267
+ Full lifecycle-state coverage requires `track_ticket`, which remains a deferred
268
+ Tier 4 mutating tool.
269
+ - `get_deep_research` — requires a `task_id` produced by `request_deep_research`.
270
+ When Tier 3 is skipped and no ID exists, record `SKIP_USER_INPUT`.
271
+ - `get_brainstorm` — requires a `brainstorm_id` produced by `request_brainstorm`.
272
+ When Tier 3 is skipped and no ID exists, record `SKIP_USER_INPUT`.
273
+ - `poll_ci_checks` — an `available:true` envelope with `checks:[]`,
274
+ `all_complete:true`, and `all_passed:true` is a `PASS`. The `TOOL_DISABLED` /
275
+ `503` self-disable branch is `SKIP_NOT_APPLICABLE` when CI is not configured.
237
276
 
238
277
  ---
239
278
 
@@ -445,46 +484,50 @@ and raw protocol noise.** Sensitive values are redacted.
445
484
 
446
485
  ---
447
486
 
448
- ## Full 55-Tool Smoke Tier Matrix
487
+ ## Full 56-Tool Smoke Tier Matrix
449
488
 
450
489
  Every registered MCP tool appears **exactly once** below with its smoke tier.
451
490
  Tier 4 (mutating/hazardous) tools are **deferred in v1**.
452
491
 
453
- Coverage reconciliation: **8 + 18 + 1 + 10 + 18 = 55**.
492
+ Coverage reconciliation: **8 + 21 + 1 + 11 + 18 = 59**.
454
493
 
455
494
  | Tier | Tool | Default action / expected-empty / special handling |
456
495
  |---|---|---|
457
496
  | Tier 0 | `ping` | Zero-input read; always run. |
458
497
  | Tier 0 | `get_my_role` | Zero-input read; always run. |
459
498
  | Tier 0 | `get_docs_dir` | Zero-input read; always run; call first to anchor writes. |
460
- | Tier 0 | `get_project_standards` | Zero-input read; always run. |
499
+ | Tier 0 | `get_project_standards` | Zero-input heavy read; always run; may save/truncate oversized output under `project-standards/`. |
461
500
  | Tier 0 | `list_config_fields` | Zero-input read; always run. |
462
501
  | Tier 0 | `list_pipelines` | Zero-input read; always run. |
463
502
  | Tier 0 | `get_parse_status` | Zero-input read; always run. |
464
503
  | Tier 0 | `list_pipeline_runs` | Zero-input read; always run. |
465
504
  | Tier 1 | `get_tickets` | Read-only; needs a query/filter. |
466
505
  | Tier 1 | `get_ticket` | Read-only; needs ticket key (default-pass tool). |
506
+ | Tier 1 | `get_ticket_model_tier` | Read-only; needs ticket key; returns a coarse model tier (`cheap`/`basic`/`premium`) for start-tickets routing — `source:"fallback"` with a null tier is a clean `PASS`. |
467
507
  | Tier 1 | `get_comments` | Read-only; needs ticket key (preferred default-pass tool). |
468
508
  | Tier 1 | `get_plan` | Artifact retriever; `PASS` with content, `PASS_EXPECTED_404` when cleanly empty; boolean probe target. |
469
509
  | Tier 1 | `get_architecture` | Artifact retriever; `PASS_EXPECTED_404` when cleanly empty. |
510
+ | Tier 1 | `get_design_doc` | Artifact retriever (tdd/fsd via `doc_type`); `PASS_EXPECTED_404` when cleanly empty. |
511
+ | Tier 1 | `get_install_manifest` | Read-only; returns the easy-install bootstrap manifest + signed snapshot token; a clean 404 (no config row) is `PASS_EXPECTED_404`. |
470
512
  | Tier 1 | `get_clarifying_questions` | Artifact retriever; `PASS_EXPECTED_404` when cleanly empty. |
471
513
  | Tier 1 | `get_ticket_critique` | Artifact retriever; `PASS_EXPECTED_404` when cleanly empty. |
472
- | Tier 1 | `get_reimplement_context` | Artifact retriever; `PASS_EXPECTED_404` when cleanly empty. |
473
- | Tier 1 | `get_deep_research` | Artifact retriever; `PASS_EXPECTED_404` when cleanly empty. |
474
- | Tier 1 | `get_brainstorm` | Artifact retriever; `PASS_EXPECTED_404` when cleanly empty. |
475
- | Tier 1 | `get_ticket_state` | Read-only; needs ticket key. |
514
+ | Tier 1 | `get_reimplement_context` | Artifact retriever; valid live-assembled content is `PASS`; a clean 404 is `PASS_EXPECTED_404` the clean 404 is not the only expected outcome. |
515
+ | Tier 1 | `get_deep_research` | Artifact retriever; requires a Tier 3-produced `task_id`; `PASS_EXPECTED_404` when cleanly empty. |
516
+ | Tier 1 | `get_brainstorm` | Artifact retriever; requires a Tier 3-produced `brainstorm_id`; `PASS_EXPECTED_404` when cleanly empty. |
517
+ | Tier 1 | `get_ticket_state` | Read-only; needs ticket key; v1 read-only reaches the clean "not tracked" 404; full state requires deferred Tier 4 `track_ticket`. |
476
518
  | Tier 1 | `get_jira_transitions` | Read-only; needs ticket key. |
477
519
  | Tier 1 | `resolve_target_status` | Read-only; needs ticket key. |
478
520
  | Tier 1 | `get_config_field` | Read-only; needs a config field name. |
479
521
  | Tier 1 | `list_attachments` | Read-only; needs ticket key; comments-fallback tool. |
480
522
  | Tier 1 | `download_attachment` | Tier 1 network read; secondary **path-canary** — saves locally only when an attachment input is supplied; omit `file_path` or keep any override under `get_docs_dir`. |
481
- | Tier 1 | `poll_ci_checks` | `SKIP_NOT_APPLICABLE` when disabled with `TOOL_DISABLED`/503, or when `resolve_ci_checks` has not populated CI configuration. |
482
- | Tier 1 | `get_pipeline_recipe` | Read-only; needs a pipeline name. |
523
+ | Tier 1 | `poll_ci_checks` | `available:true` with empty or populated checks is `PASS`; `SKIP_NOT_APPLICABLE` when disabled with `TOOL_DISABLED`/503, or when `resolve_ci_checks` has not populated CI configuration. |
524
+ | Tier 1 | `get_pipeline_recipe` | Read-only; needs a pipeline name plus required variables for variable-declaring pipelines; use `learn-repository` as the no-variable smoke target. |
483
525
  | Tier 2 | `generate_decision_page` | Local-only file-write canary; always run with the verbatim payload above. |
484
526
  | Tier 3 | `second_opinion` | Synchronous, token-costing; opt-in. |
485
527
  | Tier 3 | `generate_image` | Synchronous, token/credit-costing; spends provider credits; opt-in. |
486
528
  | Tier 3 | `request_plan_generation` | Async (ticket-key based); retrieve with `get_plan`; opt-in. |
487
529
  | Tier 3 | `request_architecture` | Async (ticket-key based); retrieve with `get_architecture`; opt-in. |
530
+ | Tier 3 | `request_design_doc` | Async (ticket-key based; `doc_type` tdd/fsd); retrieve with `get_design_doc`; opt-in. |
488
531
  | Tier 3 | `request_clarifying_questions` | Async (ticket-key based); retrieve with `get_clarifying_questions`; opt-in. |
489
532
  | Tier 3 | `request_ticket_critique` | Async (ticket-key based); retrieve with `get_ticket_critique`; opt-in. |
490
533
  | Tier 3 | `request_ticket_review` | Async submit; retrieve with `get_clarifying_questions` + `get_ticket_critique`; opt-in. |
@@ -508,4 +551,4 @@ Coverage reconciliation: **8 + 18 + 1 + 10 + 18 = 55**.
508
551
  | Tier 4 | `regenerate_directory_map` | Hazardous; deferred in v1. |
509
552
  | Tier 4 | `run_full_automation` | Orchestration (dispatches mutating child pipelines / spawns worktrees); deferred in v1. |
510
553
  | Tier 4 | `resume_full_automation` | Orchestration; deferred in v1. |
511
- | Tier 4 | `record_tiered_section_metric` | Writes server-side telemetry state (tiered_section_metrics row); deferred in v1. |
554
+ | Tier 4 | `apply_install_manifest` | Mutating (atomically writes easy-install config across the four config tables); deferred in v1. |