You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
docs: retire the honesty debt; state the goal; update the pipeline reality table
- README: 'Production Ready' and 'Idris-inside' badges removed/replaced with
the true statement (Idris2 contract spec + Elixir runtime boundary); new
Goal section (fluid for the sender, shaped for the receiver, intent-
preserving, research mode, foundational sorting); the three tools and the
interactive loop documented.
- TOPOLOGY.md / STATE.a2ml: honest per-component statuses (no universal 100%).
- ROADMAP.adoc: real history and forward path.
- EXPLAINME.adoc: the engine is wrapped by bug-filing-mcp; it is not itself
a cartridge, and feedback-mcp is unrelated.
- AUTONOMOUS-BUG-PIPELINE.adoc: C1 redrawn engine-side (decision recorded);
reality table updated — C1/C2 BUILT, C3 built as contract-spec + runtime
boundary, Deduplicator wired, NetworkVerifier optionally wired; D0 RESOLVED;
honesty-debt items marked retired.
Part of hyperpolymath/boj-server#274.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017LDhR8gtnittEWSafunnrq
Copy file name to clipboardExpand all lines: EXPLAINME.adoc
+25-22Lines changed: 25 additions & 22 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -11,31 +11,31 @@ ____
11
11
Autonomous multi-platform bug reporting for AI agents. Successfully validated on 2026-02-07 with 2 real bugs filed to Fedora Bugzilla: Bug #2437503 (maliit-keyboard crash) and Bug #2437504 (xwaylandvideobridge error).
12
12
____
13
13
14
-
This is achieved through six submitters (GitHub, GitLab, Bitbucket, Codeberg, Bugzilla, Email), fuzzy deduplication (Levenshtein distance), and formal verification of ABI boundaries via Idris2.
14
+
This is achieved through six submitters (GitHub, GitLab, Bitbucket, Codeberg, Bugzilla, Email), fuzzy deduplication (Levenshtein distance), and an Idris2-verified contract spec (`src/abi/FeedbackOTron/Contract.idr`) mirrored at runtime by the Elixir validation boundary (`FormValidator`). Full FFI enforcement (the Zig bridge) is not built — the contract is a proof-carrying spec, not a boundary the payload physically crosses.
15
15
16
16
== Two Verifiable Claims from How-It-Works
17
17
18
18
=== Claim 1: Bugzilla REST API Supports Product/Component/Version Targeting
**Location**: `elixir-mcp/lib/feedback_a_tron/submitter.ex` and `elixir-mcp/lib/feedback_a_tron/channels/bugzilla.ex`
21
21
22
22
**How verified**: The Bugzilla submitter (in the above file) uses the Bugzilla REST API endpoint (`/rest/bug`) to create bugs. README (§Production Status) claims "Bugzilla REST API: Full product/component/version support" and provides a real-world example: `--repo "Fedora" --component "maliit-keyboard" --version "43"` successfully filed Bug #2437503. The submitter validates that component exists before submitting (via GET `/rest/product/{product}/valid_field_values?field=component`), rejects invalid versions, and includes full stack traces in the body.
23
23
24
24
**Caveat**: Component validation is API-based (not local); if the Bugzilla instance changes its components, validation may fail silently.
25
25
26
26
=== Claim 2: Deduplicator Prevents Duplicate Submissions Using Fuzzy Matching
**How verified**: The deduplicator implements three strategies: SHA-256 hash (exact match), Levenshtein distance (typos/minor rewording), and fuzzy match (substring matching). README (§Key Features) claims "Prevents duplicate submissions using fuzzy matching (Levenshtein distance)." The module is tested in `tests/deduplication_test.exs` which verifies: identical reports are caught, reports differing by <10% edit distance are flagged as similar, and unrelated reports pass through.
30
+
**How verified**: The deduplicator implements three strategies: SHA-256 hash (exact match), Levenshtein distance (typos/minor rewording), and fuzzy match (substring matching). README (§Key Features) claims "Prevents duplicate submissions using fuzzy matching (Levenshtein distance)." The module is tested in `elixir-mcp/test/deduplicator_test.exs` which verifies: identical reports are caught, reports differing by <10% edit distance are flagged as similar, and unrelated reports pass through. As of the Synthesis Engine branch the dedup is *wired end-to-end*: `Submitter` calls `Deduplicator.record/3` after each successful submission and `check/1` before dispatch, and `Synthesis.Research` consults `check/1` during research mode.
31
31
32
32
**Caveat**: Fuzzy matching threshold (10%) is empirical, not formally justified. May have false positives/negatives.
33
33
34
34
== Dogfooded Across The Account
35
35
36
-
Uses the hyperpolymath ABI/FFI standard (Idris2 + Zig) for formally verified credential handling. The Submitter module calls formally specified Idris2 ABI types (from the `proven` repo) to guarantee memory safety at FFI boundaries. This is reused in gossamer (window management credentials) and echidna (proof solver credentials).
36
+
Follows the hyperpolymath ABI/FFI repo layout (Idris2 spec + Zig bridge). To be precise about what that means here: the Idris2 side is a real, proof-carrying contract spec (`Contract.idr`), the Elixir `FormValidator` enforces the same rules at runtime, and the Zig FFI bridge is a stub — the Submitter does **not** call Idris2-compiled code or `proven` types at any FFI boundary.
37
37
38
-
Also integrates with boj-server (cartridge system) — feedback-o-tron is a cartridge itself.
38
+
Also integrates with boj-server (cartridge system) — but feedback-o-tron is **not** a cartridge itself. The engine is wrapped by the `bug-filing-mcp` cartridge in `boj-server-cartridges`, which forwards requests over the engine's localhost HTTP intake (`127.0.0.1:7722`). The similarly named `feedback-mcp` cartridge is an unrelated sentiment counter that merely shares the name (see `docs/AUTONOMOUS-BUG-PIPELINE.adoc` §5).
39
39
40
40
== File Map
41
41
@@ -44,28 +44,31 @@ Also integrates with boj-server (cartridge system) — feedback-o-tron is a cart
| `elixir-mcp/lib/feedback_a_tron/submitter.ex` | Submitter module: dispatch to platform channels; validates `template_data` against the fetched form before rendering/dispatch
0 commit comments