frontend-patterns/feedback/README.md

42 lines
2.2 KiB
Markdown
Raw Permalink Normal View History

# Consumer feedback intake
Activity-core reads `sources.json` daily, resolves each enrolled Forgejo repository's
branch to a full commit and reads its receipt index and YAML events at that revision.
Only `https://forgejo.coulomb.social/coulomb/` is allowed. No arbitrary commands,
credentials, or model prompts are taken from these files.
Enrollment entry:
```json
{"repo":"example-consumer","branch":"main","index":"research/pattern-use/index.json"}
```
Consumer index (at most 100 entries across one collection):
```json
{"schema_version":1,"receipts":[{"path":"research/pattern-use/use-01/event-01.yaml","sha256":"<64 hex characters>"}]}
```
Events follow [PatternUseReceipt.yaml](../templates/PatternUseReceipt.yaml).
The [local producer helper](ConsumerIntegration.md#local-lookup-and-closeout-helper)
prepares verified reference pins and a new immutable JSON/YAML event plus its index
entry from explicit consumer provenance. It does not install the closeout hook or
enroll a consumer. `decision-input.example.json` is a synthetic format fixture.
One stable `use_id` links immutable events; `previous_event_sha256` identifies a
follow-up. Identical events deduplicate; conflicting IDs, missing predecessors,
branches/cycles and malformed records are quarantined in the report. Synthetic
receipts never count as external use. A source/hash check establishes provenance,
not the truth of a helpfulness assertion or the referenced test result.
Reports are retained by activity-core and State Hub, under `fep_feedback_intake`,
`fep_improvement_review` and `fep_monthly_review`. Their compact deterministic digest
records exact source revisions, counts, unresolved signals and collection errors.
A collection error disables action eligibility and is reported as degraded, not zero
feedback. The current adapter rejects over-cap collections visibly; durable cursor
pagination and consumer closeout wiring remain WP-0008 T02 work.
No consumers are enrolled initially. Enrollment and actual task-close receipts are
still needed to measure value. The unattended report schedules do not create real-use
evidence. Weekly mutation remains disabled until a scoped, budget-enforced execution
profile has a positive production proof. See [runbook](../docs/ActivityCoreLoop.md).