Feedback · the compounding loop, made visible
Every report becomes an ADR.
Every learning compounds into the substrate.
Bug reports, security findings, and operational learnings from open-source usage flow into the same machinery that governs operator pilots: signed observations, gap detection, meta-generator intents, ADRs, mutation-tested fixes. No black-hole ticket queue.
The substrate has eight cryptographic feedback chains — L1 through L12 — designed precisely so that observations about its behaviour can be recorded honestly and verified independently. Open-source feedback rides the same rails as operator- pilot feedback. A bug filed by a security researcher and a learning surfaced by a Fortune-500 platform team go through the same triage, the same ADR discipline, the same falsifiable- prediction tradition.
What makes the substrate's feedback loop different from a standard OSS issue tracker is that learnings can compound into new substrate primitives automatically. The meta-generator (ADR (ll)) accepts operator-described intents → synthesises substrate- component code → reviewer-gate approves → ships as part of the next release. A learning isn't just "we'll think about it" — it's a structured input to a code-emission factory.
We are also honest when feedback falsifies something we previously claimed. The L9 self-evaluation chain holds the substrate accountable to its own predictions. Failures get recorded, not hidden. See the full loop →
Three channels · pick the right one
Each channel matched to what it actually carries.
Bug report · functional defect
The verifier returns the wrong result. The SDK throws on valid input. A canonical-form output drifts. Something is broken in a way that's reproducible.
Where
GitHub issues · structured template
File a bug→Processing
Triage <7d · reproduce + categorise · fix + mutation test + ADR · next release
Public outcome
Yes — full triage history visible on the issue, fix linked to ADR (xx + 1)
Security disclosure · CVE-class
You found a way to bypass the spec, forge a chain entry, escape the closed-enum surface, or otherwise compromise the trust model. Anything that an attacker could exploit.
Where
security@promethean.software · GPG
Disclose→Processing
Acknowledge <24h · fix in private branch · coordinated disclosure 90-day window · CVE + ADR + transparency note
Public outcome
After fix ships — published transparency note + ADR documenting the failure mode + new test guarding against regression
Learning · operational observation
The substrate works correctly but you've noticed something about how it interacts with reality: a missing primitive, an awkward integration path, a regulator question we can't answer well yet, a pattern the meta-generator could synthesise.
Where
GitHub discussions · signed observations
Share a learning→Processing
Monthly batch review · structured into SubstrateComponentIntent · meta-generator proposal · reviewer-gate · next-build inclusion
Public outcome
Discussion thread + (if accepted) substrate-component intent in the corpus + ADR documenting the new primitive
The loop · what happens to a report
Not a ticket queue. A code-emission pipeline.
Report filed
Bug report on GitHub, security email, or learning posted to discussions. Anyone can file.
—
Triaged + categorised
Substrate engineering reproduces (bug), confirms (security), or interviews (learning). Outcomes: accepted / out-of-scope / needs-more-info / falsifies-claim.
↳ L9 self-evaluation log entry if the report falsifies a prior claim
Fix designed
For bugs + security: code change + new test guarding against regression. For learnings: SubstrateComponentIntent drafted, meta-generator synthesises candidate primitive.
↳ ADR drafted with falsifiable predictions for the fix
Fix mutation-tested
Stryker mutates the affected modules; the new test must catch the regression. If kill-rate drops below the v1.2 threshold (75%), the fix is rejected and re-designed.
↳ reports/mutation/ HTML report attached to the ADR
Reviewer-gate
For learnings becoming substrate components: reviewer-gate confirms the SubstrateComponentPolicy is satisfied (closed-enum category, no banned imports, line/export caps). For bugs: code review + tests.
↳ L11 substrate-component log entry on acceptance
Shipped
Next release. Fix or new primitive available. The corresponding L12 reference chains continue to verify under the same trust anchor (backward compatibility verified empirically).
↳ ADR linked from CHANGELOG · ADR INDEX updated · build receipt signed
Verified externally
The reporter can re-run their original case against the new release and confirm the fix. The OTS-anchored L12 chains prove the timing publicly.
↳ Falsification record (ADR (mm) primitive) updated if the prior prediction was wrong
Compounds
The fix or primitive enters the corpus. Future operator pilots inherit it. The meta-generator can reference it when synthesising components for similar patterns.
↳ Corpus update · §62 reverse-loop activates
What we collect · what we don't
Zero telemetry by default. Opt-in if you want to help.
We do not collect
- ✕Anything from `verify.mjs`. The verifier is offline-capable. It does not phone home. Run it air-gapped.
- ✕Anything from the SDK by default. `runConstrainedAI` writes L12 receipts to YOUR file. We don't see them.
- ✕Chain contents. Your `productId`, `specId`, `inputHash`, `outputCanonicalHash` — all stay on your filesystem unless you explicitly share.
- ✕PII or operational data. The substrate is built on PII-safe primitives (only SHA-256 inputHash is recorded). We don't add a side-channel.
- ✕Anything from the npm or PyPI package install. Standard package-manager telemetry only.
Opt-in · only if you want to help
- GitHub issues + discussions — anything you post is voluntary and public.
- Security email — voluntary. Encrypted via GPG to
security@promethean.software. - Anonymised verifier telemetry (planned for v1.3, opt-in via flag): chain-entry-count distribution + canonical-form-version distribution. No chain content, no trust anchor, no operational data. Disable per-run.
- Operator-pilot signed observations (L5 chain) — explicit opt-in per operator-pilot agreement; subject to NDA + redaction rules; signed by operator's own stream key.
- Corpus contributions — explicit submission via discussions or signed-observation API. You sign what you contribute; we attest receipt.
The public ledger
Every accepted report appears in four places. All public. All verifiable.
GitHub Issues · GitHub Discussions
The original report, the triage thread, the linked PR, the test that catches the regression. Public from filing to close. No back-channel.
View →ADR Index
Every accepted fix or new primitive gets an ADR with falsifiable predictions. ADRs (a) through (xx) document the substrate's full architectural history. Phase R closeout ADR (xx) is the most recent.
View →L9 self-evaluation chain
When a report falsifies a prior claim, we record the falsification — not just the fix. The substrate audits itself with the same discipline it asks of operators.
ADR (mm) · L9 primitiveSubstrate-component log (L11)
When a learning becomes a substrate component, the meta-generator emits the code and an L11 entry records the synthesis — including the intent that motivated it. Reproducible from the original report.
ADR (pp) · L11 primitiveResponse commitments
Open tier gets the same triage discipline as commercial tiers. Faster lanes are paid; rigour is universal.
| Tier | Acknowledge | Triage | Fix (P0 / P1 / P2) | Channel |
|---|---|---|---|---|
| Security · any tier | < 24 h | < 72 h | immediate · 14 d · 90 d | security@promethean.software |
| Open | < 72 h | < 7 d | next release · next quarter · maintainer's choice | GitHub issues + discussions |
| Team (€79/spec/mo) | best-effort | < 7 d | next release · maintainer's choice | GitHub issues + private support email |
| Production (€499/mo) | best-effort | < 7 d | hotfix · 30 d · 60 d | Email + private Slack channel |
| Annex III Assessment | < 4 h business | < 48 h | hotfix · 14 d · 45 d | Dedicated Slack + email + on-call escalation |
| Platform · Strategic | < 1 h | same business day | hotfix · 7 d · 30 d | Shared incident channel + named engineers |
| Promethean for Good | < 48 h | < 7 d | hotfix for production-affecting · next release for others | for-good@promethean.software |
Three doors
“Open-source feedback isn't a tax on the maintainer. It's the highest-quality input the substrate gets — because it comes from people who chose to dig in.”
File a bug
GitHub Issues
Structured bug-report template. Acknowledged within 72 h, triaged within 7 d, fix tracked publicly.
Disclose a security issue
security@promethean.software
GPG-encrypted. Acknowledged within 24 h. 90-day responsible disclosure window. CVE + transparency note on resolution.
Share a learning
GitHub Discussions
Operational observations, missing primitives, integration patterns. Monthly batch review; accepted items become substrate-component intents.
Or · submit directly here
One form. Routed to the same triage queue.
Email and GitHub are the canonical channels. This form is the third way — same triage queue, same SLA, same ADR-on- acceptance discipline. Use it if you don't have a GitHub account or want anonymity (email field is optional).