Skip to content

feat(bug-filing-mcp): new cartridge wrapping the real feedback-o-tron engine#78

Merged
hyperpolymath merged 1 commit into
mainfrom
feat/bug-filing-mcp
Jul 9, 2026
Merged

feat(bug-filing-mcp): new cartridge wrapping the real feedback-o-tron engine#78
hyperpolymath merged 1 commit into
mainfrom
feat/bug-filing-mcp

Conversation

@hyperpolymath

Copy link
Copy Markdown
Owner

What

A new first-class JS-worker cartridge bug-filing-mcp that packages the real feedback-o-tron bug-filing engine for the autonomous bug-reporting pipeline.

  • Single tool submit_feedback → forwards to the engine's HTTP intake POST http://127.0.0.1:7722/api/v1/submit_feedback (companion PR: feedback-o-tron#46).
  • Reachable via the gateway: POST /cartridge/bug-filing-mcp/invoke {tool:"submit_feedback", arguments:{title,body,repo}}.
  • Manifest validates against schemas/cartridge-v1.json; deno check clean; no FFI/.so claims — pure mod.js dispatch.
  • Returns a clear 503 (with a start-the-engine hint) if the backend isn't running.

Why — D0 = new wrapping cartridge

Owner decision D0: the unrelated feedback-mcp sentiment counter is left untouched; the real engine gets its own distinctly-named cartridge. This ends the long-standing name/identity collision by making the real engine first-class, and completes the boj-side of contract C4 dispatch (feedback-o-tron/docs/AUTONOMOUS-BUG-PIPELINE.adoc).

Wiring

boj gateway :7700
  POST /cartridge/bug-filing-mcp/invoke {tool:submit_feedback, arguments:{title,body,repo}}
    -> bug-filing-mcp/mod.js (Deno)
       -> POST 127.0.0.1:7722/api/v1/submit_feedback
          -> feedback-o-tron Submitter -> gh / glab / Bugzilla REST / ...

Notes

  • site/catalog.json is an externally-generated artifact (no in-repo generator); this cartridge will appear on the next catalog regeneration.

Closes hyperpolymath/boj-server#279 · Refs hyperpolymath/boj-server#274

🤖 Generated with Claude Code

… engine

Adds a first-class JS-worker cartridge that packages the real bug-filing
engine for the autonomous bug-reporting pipeline. Its submit_feedback tool
forwards to the engine's HTTP intake (POST 127.0.0.1:7722/api/v1/submit_feedback,
companion feedback-o-tron PR), so the boj gateway can reach the engine via
POST /cartridge/bug-filing-mcp/invoke.

Implements owner decision D0 = new wrapping cartridge: the unrelated
feedback-mcp sentiment counter is left untouched; this is a new, distinctly
named cartridge for the real engine. Manifest validates against
schemas/cartridge-v1.json; no FFI (.so) claims — pure mod.js dispatch.

Closes: hyperpolymath/boj-server#279
Refs: hyperpolymath/boj-server#274

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Jul 9, 2026

Copy link
Copy Markdown

🔍 Hypatia Security Scan

Findings: 282 issues detected

Severity Count
🔴 Critical 44
🟠 High 131
🟡 Medium 107

⚠️ Action Required: Critical security issues found!

View findings
[
  {
    "reason": "TypeScript file detected -- banned language",
    "type": "banned_language_file",
    "file": "/home/runner/work/boj-server-cartridges/boj-server-cartridges/cartridges/cross-cutting/orchestration/stack-orchestrator-mcp/adapter/planner.ts",
    "action": "flag",
    "rule_module": "cicd_rules",
    "severity": "critical"
  },
  {
    "reason": "TypeScript file detected -- banned language",
    "type": "banned_language_file",
    "file": "/home/runner/work/boj-server-cartridges/boj-server-cartridges/cartridges/cross-cutting/orchestration/stack-orchestrator-mcp/adapter/types.ts",
    "action": "flag",
    "rule_module": "cicd_rules",
    "severity": "critical"
  },
  {
    "reason": "TypeScript file detected -- banned language",
    "type": "banned_language_file",
    "file": "/home/runner/work/boj-server-cartridges/boj-server-cartridges/cartridges/cross-cutting/orchestration/stack-orchestrator-mcp/adapter/rollback.ts",
    "action": "flag",
    "rule_module": "cicd_rules",
    "severity": "critical"
  },
  {
    "reason": "TypeScript file detected -- banned language",
    "type": "banned_language_file",
    "file": "/home/runner/work/boj-server-cartridges/boj-server-cartridges/cartridges/cross-cutting/orchestration/stack-orchestrator-mcp/adapter/rollback_test.ts",
    "action": "flag",
    "rule_module": "cicd_rules",
    "severity": "critical"
  },
  {
    "reason": "TypeScript file detected -- banned language",
    "type": "banned_language_file",
    "file": "/home/runner/work/boj-server-cartridges/boj-server-cartridges/cartridges/cross-cutting/orchestration/stack-orchestrator-mcp/adapter/planner_test.ts",
    "action": "flag",
    "rule_module": "cicd_rules",
    "severity": "critical"
  },
  {
    "reason": "TypeScript file detected -- banned language",
    "type": "banned_language_file",
    "file": "/home/runner/work/boj-server-cartridges/boj-server-cartridges/cartridges/cross-cutting/orchestration/stack-orchestrator-mcp/adapter/lsp_client.ts",
    "action": "flag",
    "rule_module": "cicd_rules",
    "severity": "critical"
  },
  {
    "reason": "TypeScript file detected -- banned language",
    "type": "banned_language_file",
    "file": "/home/runner/work/boj-server-cartridges/boj-server-cartridges/cartridges/cross-cutting/orchestration/stack-orchestrator-mcp/adapter/lsp_client_test.ts",
    "action": "flag",
    "rule_module": "cicd_rules",
    "severity": "critical"
  },
  {
    "reason": "TypeScript file detected -- banned language",
    "type": "banned_language_file",
    "file": "/home/runner/work/boj-server-cartridges/boj-server-cartridges/cartridges/cross-cutting/orchestration/stack-orchestrator-mcp/adapter/parser.ts",
    "action": "flag",
    "rule_module": "cicd_rules",
    "severity": "critical"
  },
  {
    "reason": "TypeScript file detected -- banned language",
    "type": "banned_language_file",
    "file": "/home/runner/work/boj-server-cartridges/boj-server-cartridges/cartridges/cross-cutting/orchestration/stack-orchestrator-mcp/adapter/integration_test.ts",
    "action": "flag",
    "rule_module": "cicd_rules",
    "severity": "critical"
  },
  {
    "reason": "TypeScript file detected -- banned language",
    "type": "banned_language_file",
    "file": "/home/runner/work/boj-server-cartridges/boj-server-cartridges/cartridges/cross-cutting/orchestration/stack-orchestrator-mcp/adapter/parser_test.ts",
    "action": "flag",
    "rule_module": "cicd_rules",
    "severity": "critical"
  }
]

Powered by Hypatia Neurosymbolic CI/CD Intelligence

@hyperpolymath
hyperpolymath marked this pull request as ready for review July 9, 2026 08:23
@hyperpolymath
hyperpolymath merged commit 373dce6 into main Jul 9, 2026
28 of 29 checks passed
@hyperpolymath
hyperpolymath deleted the feat/bug-filing-mcp branch July 9, 2026 08:23
hyperpolymath added a commit that referenced this pull request Jul 17, 2026
…n, full cartridge layout (#85)

<!-- SPDX-License-Identifier: CC-BY-SA-4.0 -->

## Summary

bug-filing-mcp v0.2: exposes the feedback-o-tron engine's full
interactive loop (`research_feedback` → `synthesize_feedback` →
`submit_feedback` with fail-closed `template_data` validation), promotes
the cartridge Ayo → **Teranga** per owner decision (bug filing is a core
boj capability), and completes the standard cartridge layout
(ffi/abi/panels/tests). Extends the v0.1 wrapper from #78; part of
hyperpolymath/boj-server#274 via hyperpolymath/boj-server#282 / #283.

## Schema-validation note

- [x] This PR adds or modifies one or more `cartridge.json` manifests.
- [ ] This PR does not touch any `cartridge.json`.

`cd tools/validate-cartridges && deno task strict` run locally:
**141/141 manifests passing** (includes the updated v0.2 manifest).
`schemas/PINNED-SHA` untouched.

Notes on honesty: the manifest does **not** claim `available: true` (the
engine must run locally with `FEEDBACK_A_TRON_HTTP=1`) and declares
**no** `ffi` block — the live dispatch path is `mod.js`; the Zig FFI is
standard-layout scaffolding answering with a structured delegation
notice (its tests pass under zig 0.15.2).
`abi/BugFilingMcp/SafeBugFiling.idr` compiles under `%default total`
(Idris2 0.7.0) and proves the pipeline state machine: a rejected report
has no path to submission (`rejectedIsTerminal`) and submission is only
reachable through validation (`submitRequiresValidation`).
`tests/integration_test.sh` passed 8/8 against a live engine (SKIPs
cleanly when absent).

The repo also gains its own `.github/ISSUE_TEMPLATE` issue forms
(dogfood — the pipeline needs forms to fetch).

## Refs

hyperpolymath/boj-server#274 (epic), hyperpolymath/boj-server#282
(C1+C2), hyperpolymath/boj-server#283 (C3), hyperpolymath/boj-server#279
(v0.1), companion engine PR hyperpolymath/feedback-o-tron#51.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

https://claude.ai/code/session_017LDhR8gtnittEWSafunnrq

---
_Generated by [Claude
Code](https://claude.ai/code/session_017LDhR8gtnittEWSafunnrq)_

Co-authored-by: Claude <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feature]: new bug-filing-mcp cartridge wrapping the real feedback-o-tron engine

1 participant