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.

3
Channels
bug reports · security disclosures · learnings
< 24h
Security acknowledgement
responsible-disclosure window 90 days
< 7d
Bug triage commitment
reproduced or rejected with rationale
ADR
Every accepted fix
numbered, falsifiable, mutation-tested

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.

01

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)

02

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

03

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.

01

Report filed

Bug report on GitHub, security email, or learning posted to discussions. Anyone can file.

02

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

03

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

04

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

05

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

06

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

07

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

08

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 primitive

Substrate-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 primitive

Response commitments

Open tier gets the same triage discipline as commercial tiers. Faster lanes are paid; rigour is universal.

TierAcknowledgeTriageFix (P0 / P1 / P2)Channel
Security · any tier< 24 h< 72 himmediate · 14 d · 90 dsecurity@promethean.software
Open< 72 h< 7 dnext release · next quarter · maintainer's choiceGitHub issues + discussions
Team (€79/spec/mo)best-effort< 7 dnext release · maintainer's choiceGitHub issues + private support email
Production (€499/mo)best-effort< 7 dhotfix · 30 d · 60 dEmail + private Slack channel
Annex III Assessment< 4 h business< 48 hhotfix · 14 d · 45 dDedicated Slack + email + on-call escalation
Platform · Strategic< 1 hsame business dayhotfix · 7 d · 30 dShared incident channel + named engineers
Promethean for Good< 48 h< 7 dhotfix for production-affecting · next release for othersfor-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.”

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).

Email is optional — anonymous submissions are accepted. If you leave it blank, we can't follow up, but we can still triage and ship a fix; the changelog will mention the report by reference number.