cellm/skills/cellm-feedback/SKILL.md
Generate structured upstream feedback for the CELLM engineering team. Produces evidence-first Markdown at docs/evidence/<date>-cellm-feedback-*.md for bugs, anti-patterns, deprecation gaps, and harness surprises, with optional atom registration via knowledge_ops. Use when: 'feedback for CELLM', 'send to CELLM team', 'register this as atom', 'document this anti-pattern', 'report this bug upstream'. Trigger proactively on MCP schema/runtime mismatches, mechanical edit loops (>=3 sequential edits), short deprecation windows (<6 weeks), or reusable harness surprises. Do NOT trigger for routine feature work or project-local bugs.
npx skillsauth add murillodutt/cellm cellm/skills/cellm-feedbackInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
The CELLM engineering team (product, harness, Oracle, skill authors) depends on field signal from Tilly and peer skills running in real projects. Each session is a laboratory. When bugs, anti-patterns, or optimization opportunities are observed, they should flow back as structured evidence — not scattered Slack messages or ad-hoc atoms.
This skill standardizes that flow. It produces a single MD per finding or batch of findings, optionally mirrors reusable items as CELLM atoms, and enforces the minimum evidence contract: method, evidence, impact, proposal, owner, acceptance criteria.
/cellm:cellm-feedback <slug> — invocation with explicit slug.Activate without waiting for the user when any of these is observed:
anyOf but runtime returns Invalid input: <field>: expected string, received undefined. Severity: medium.Edit tool calls with the same
old_string → new_string pattern executed sequentially where a
single Bash/Python script would have worked. Severity: high
(token economy).deprecation field with sunsetDate < 6 weeks away and consumer
skills still reference the deprecated name. Severity: medium.additionalContext exceeds
display budget and is written to disk without inline warning to the
agent. Severity: low-medium.cellm-plugin/**)
mentions a path/tool/flag that no longer exists or has been renamed
in the current plugin version. Consumer project docs do not trigger
this rule. Severity: low.For each observation, classify:
| Field | Values |
|---|---|
| type | bug / anti-pattern / discovery / decision / meta |
| severity | critical / high / medium / low |
| scopeClass | project / harness / external-vendor / tooling / framework |
| reusable | true (register as atom) / false (MD-only) |
| channel | oracle-issue / plan / skill-update / atom-only |
Reusable = the finding applies to other projects, not just the current one. Bug in an MCP tool → reusable. A typo in a project-specific ADR → not reusable.
Target path (always relative to project root of the consumer):
docs/evidence/<YYYY-MM-DD>-cellm-feedback-<slug>.md
If a doc for the same date + slug already exists, append to it as a new numbered finding. Do not overwrite.
If no docs/evidence/ dir exists in the consumer project, create it.
Every MD follows this structure. Sections are mandatory unless marked optional.
# Session feedback — <title> (<YYYY-MM-DD>)
**Data:** <YYYY-MM-DD>
**Sessão:** <short context: skill name / project / task>
**Escopo:** <1-line description of findings>
**Destino:** equipe CELLM (triagem + decisão por item).
**Formato:** cada achado é auto-contido — método, evidência, impacto,
proposta, classificação. Equipe filtra o que entra em backlog.
---
## Sumário executivo
| # | Achado | Tipo | Severidade | Canal sugerido |
|---|---|---|---|---|
| 1 | ... | ... | ... | ... |
---
## 1. <finding title>
### Classificação
- type: <bug|anti-pattern|discovery|decision|meta>
- severity: <critical|high|medium|low>
- scopeClass: <project|harness|external-vendor|tooling|framework>
- reusable: <true|false>
- channel: <oracle-issue|plan|skill-update|atom-only>
### Observação
<what happened, concrete and short>
### Evidência
<commands run, tool call payloads, log excerpts, file/line refs>
At least one evidence item must be externally verifiable (repro command,
commit hash, file:line, or literal payload). Subjective narrative alone
fails the contract.
### Impacto
<measured or ordered-of-magnitude effect: tokens, latency, correctness>
Include at least one objective metric (tokens, seconds, count, or
correct/incorrect boolean). If only qualitative evidence is available,
prefix with `qualitative:` and justify why no metric was possible.
### Proposta
<concrete fix or mitigation>
### Owner sugerido
<team: harness / Oracle / skill authoring / governance>
### Acceptance criteria
- <objective criterion 1>
- <objective criterion 2>
---
## Anexos (optional)
### A. Commits de referência
- `<hash>` — <title>
### B. Atoms CELLM relacionados
- `<ka_xxx>` — <title>
### C. Atoms registrados nesta sessão
- `<ka_xxx>` — <anti-pattern name>
Why the template is fixed: CELLM team triages by skimming the sumário executivo. Uniform structure lets them batch-triage 10 findings in minutes instead of parsing 10 different formats.
Numbers are order-of-magnitude unless explicitly measured. State so. Do not fabricate precision.
reusable = true)For every reusable finding, register via knowledge_ops.knowledge_add:
{
"operation": "knowledge_add",
"project": "<consumer-project-key>",
"title": "<ANTI-NAME or short finding title>",
"detail": "<≤2000 chars: what + rule + source>",
"scope": "<dot.path, e.g. 'agent/tool-usage' or 'harness/mcp'>",
"scopeClass": "harness",
"tags": ["anti-pattern", "token-economy", ...],
"confidence": 0.85,
"sourceRef": "docs/evidence/<file>.md",
"status": "active",
"source": "tilly-self-audit"
}
Important: scope is required at runtime despite the JSONSchema
declaring it optional (known bug, documented in this skill's own
source evidence). Always pass a non-empty scope string.
After registration, cross-link atom IDs back into the MD under Anexos §C.
At the end of the MD, list what the CELLM team should do with each finding:
oracle-issue → file in Oracle issue tracker (future, manual today)plan → add to a WAVE plan for the CELLM projectskill-update → update SKILL.md, PERSONA, or refsatom-only → persisted as atom; no further action neededThis is triage help, not a decision for the team. They accept or reroute.
Commit message format:
docs(evidence): <imperative summary of findings>
<2-3 line expansion. List atom IDs if registered.>
Atomic commit: only the evidence MD and any updated atoms cross-link. Do not bundle unrelated work.
This skill produces exactly one new file per invocation (or appends to an existing same-day doc). Plus optional atom registrations.
Never produces:
| Signal | Meaning |
|---|---|
| "register as atom" | Force reusable = true for current finding. |
| "MD-only" | Force reusable = false, skip atom step. |
| "append" | Append to today's existing doc instead of creating new. |
| "batch" | Collect N findings into one MD before writing. |
oracle-issue. Most
findings land as atom-only or skill-update.scope — runtime requires it.First real use of this skill (and source of its own anti-pattern
catalog): docs/evidence/2026-04-18-cellm-feedback-session-housekeeping.md
in the zqx project. 7 findings, 5 atoms registered, playbook +
3 governance metrics included. Use it as canonical example of
density, tone, and evidence depth.
data-ai
Prose override — temporarily disable quantization and respond in readable prose. Use when relational density matters, for safety-critical explanations, onboarding handoffs, or when token economy is not the priority.
development
Govern explicit weekly Super PRs or maintainer-requested PR merges. Evaluates a 10-criterion readiness checklist and performs governed merge only when a user-requested PR is READY. Never creates or keeps permanent PRs. Use when: 'pr-check', 'pr-merge', 'merge this PR safely', 'is PR ready', 'guard merge', or /sk-git delegates pr-merge.
data-ai
Operational surface for the compress-llm Layer-1 token I/O compressor. Enable, disable, switch mode, and inspect status without editing config files. Use when tuning compression pressure for the current session or project.
documentation
Docops: scaffold LLM-first documentation structure, templates, and docops.json for a project. Creates directory hierarchy without overwrite. Use when: 'init docs', 'setup documentation', 'create docops structure'. Not for Oracle setup (use cellm:oracle).