11= feedback-a-tron
22Jonathan D.A. Jewell <jonathan .jewell@gmail.com >
3+ v1.0.0, 2025-12-11
34:toc: macro
45:icons: font
56:source-highlighter: rouge
@@ -9,43 +10,150 @@ Jonathan D.A. Jewell <jonathan.jewell@gmail.com>
910:url-bitbucket: https://bitbucket.org/hyperpolymath/feedback-a-tron
1011:url-codeberg: https://codeberg.org/hyperpolymath/feedback-a-tron
1112
12- Automated user feedback collection and analysis
13+ Automated multi-platform feedback submission with network verification
1314
15+ image:https://img.shields.io/badge/version-1.0.0-blue[Version 1.0.0]
1416image:https://img.shields.io/badge/RSR-Certified-gold[RSR Certified]
1517image:https://img.shields.io/badge/License-AGPL%20v3-blue[License]
1618
1719toc::[]
1820
1921== Overview
2022
21- feedback-a-tron is part of the link:https://rhodium.sh[Rhodium Standard] (RSR) ecosystem .
23+ FeedbackATron automates the submission of issues, bug reports, and feedback across multiple platforms simultaneously. It ensures submissions actually reach their destination through comprehensive network verification .
2224
23- Domain: *software-development*
25+ === Key Features
2426
25- == Installation
27+ * **Multi-platform submission**: GitHub, GitLab, Bitbucket, Codeberg (simultaneously)
28+ * **Deduplication**: Prevents duplicate submissions using fuzzy matching
29+ * **Network verification**: Confirms submissions reached their destination
30+ * **Credential rotation**: Avoids rate limits by rotating credentials
31+ * **Audit logging**: Complete record of all operations
32+ * **MCP integration**: Works as Claude Code tool
33+
34+ == Quick Start
2635
2736[source,bash]
2837----
29- # Clone from GitHub (primary)
38+ # Clone
3039git clone {url-github}
40+ cd feedback-a-tron/elixir-mcp
41+
42+ # Install dependencies
43+ mix deps.get
44+
45+ # Run
46+ mix run --no-halt
47+ ----
48+
49+ == Usage
50+
51+ === As Elixir Library
52+
53+ [source,elixir]
54+ ----
55+ # Submit to GitHub
56+ FeedbackATron.Submitter.submit(%{
57+ title: "Bug: Something is broken",
58+ body: "Description of the issue...",
59+ repo: "owner/repo"
60+ }, platforms: [:github])
61+
62+ # Submit to multiple platforms
63+ FeedbackATron.Submitter.submit(%{
64+ title: "Feature request",
65+ body: "...",
66+ repo: "owner/repo"
67+ }, platforms: [:github, :gitlab, :codeberg])
68+
69+ # With deduplication check
70+ FeedbackATron.Deduplicator.check(%{title: "...", body: "..."})
71+ # => {:ok, :unique} | {:duplicate, existing} | {:similar, matches}
72+ ----
73+
74+ === As MCP Tool (Claude Code)
3175
32- # Or from mirrors
33- git clone {url-gitlab}
34- git clone {url-codeberg}
76+ The MCP server exposes a `submit_feedback` tool:
77+
78+ [source,json]
79+ ----
80+ {
81+ "tool": "submit_feedback",
82+ "params": {
83+ "title": "Bug report",
84+ "body": "...",
85+ "platforms": ["github", "gitlab"],
86+ "repo": "owner/repo"
87+ }
88+ }
3589----
3690
37- == RSR Stack
91+ == Architecture
3892
39- This project follows RSR conventions:
93+ [source]
94+ ----
95+ ┌─────────────────────────────────────────────────────────────┐
96+ │ FeedbackATron │
97+ ├─────────────────────────────────────────────────────────────┤
98+ │ ┌──────────┐ ┌──────────────┐ ┌─────────────────────┐ │
99+ │ │ Submitter│ │ Deduplicator │ │ NetworkVerifier │ │
100+ │ │ │ │ │ │ - Latency/jitter │ │
101+ │ │ - GitHub │ │ - Exact hash │ │ - DNS verification │ │
102+ │ │ - GitLab │ │ - Fuzzy match│ │ - TLS validation │ │
103+ │ │ - Bitbucket│ │ - Semantic │ │ - BGP/RPKI checks │ │
104+ │ │ - Codeberg│ │ │ │ │ │
105+ │ └──────────┘ └──────────────┘ └─────────────────────┘ │
106+ │ │
107+ │ ┌──────────────────────────────────────────────────────┐ │
108+ │ │ AuditLog │ │
109+ │ │ - All submissions recorded │ │
110+ │ │ - JSON lines format │ │
111+ │ │ - Automatic rotation │ │
112+ │ └──────────────────────────────────────────────────────┘ │
113+ ├─────────────────────────────────────────────────────────────┤
114+ │ Credentials │
115+ │ - Environment variables │
116+ │ - CLI configs (gh, glab) │
117+ │ - Rotation for rate limit avoidance │
118+ └─────────────────────────────────────────────────────────────┘
119+ ----
40120
41- * ✅ ReScript for frontend/logic
42- * ✅ Deno for JS runtime
43- * ✅ WASM for performance-critical code
44- * ✅ Rust/OCaml/Haskell for systems/proofs
45- * ✅ Guile/Scheme for configuration
46- * ❌ No TypeScript
47- * ❌ No Go
48- * ❌ No npm
121+ == Network Verification
122+
123+ Before and after submission, FeedbackATron verifies:
124+
125+ [cols="1,2"]
126+ |===
127+ | Check | Purpose
128+
129+ | Latency/Jitter | Detect unstable connections
130+ | Packet loss | Ensure data integrity
131+ | DNS resolution | Verify correct destination
132+ | DNSSEC | Prevent DNS spoofing
133+ | TLS certificate | Verify endpoint identity
134+ | BGP origin | Detect route hijacking
135+ |===
136+
137+ == Configuration
138+
139+ Environment variables:
140+
141+ [source,bash]
142+ ----
143+ # GitHub
144+ export GITHUB_TOKEN=ghp_...
145+
146+ # GitLab
147+ export GITLAB_TOKEN=glpat_...
148+
149+ # Bitbucket
150+ export BITBUCKET_TOKEN=...
151+
152+ # Codeberg
153+ export CODEBERG_TOKEN=...
154+ ----
155+
156+ Or use CLI tools (gh, glab) which are auto-detected.
49157
50158== Mirrors
51159
@@ -63,14 +171,8 @@ This project follows RSR conventions:
63171
64172Licensed under AGPL-3.0-or-later OR LicenseRef-Palimpsest-0.5.
65173
66- See link:LICENSE[LICENSE] for details.
174+ See link:LICENSE.txt [LICENSE.txt ] for details.
67175
68176== Contributing
69177
70178See link:CONTRIBUTING.adoc[CONTRIBUTING.adoc].
71-
72- == Metadata
73-
74- * Domain: software-development
75- * Framework: RSR (Rhodium Standard Repository)
76- * Dublin Core: link:.well-known/dc.xml[.well-known/dc.xml]
0 commit comments