Skip to content

feat(autopilot:playbooks-guidance): phase 1 — load default, duplicate & preview pills - #70

Merged
pacphi merged 1 commit into
developfrom
autopilot/playbooks-guidance/phase-1
Jul 1, 2026
Merged

feat(autopilot:playbooks-guidance): phase 1 — load default, duplicate & preview pills#70
pacphi merged 1 commit into
developfrom
autopilot/playbooks-guidance/phase-1

Conversation

@pacphi

@pacphi pacphi commented Jul 1, 2026

Copy link
Copy Markdown
Owner

Automated phase-1 run of the playbooks-guidance autopilot pipeline (ADR-006). Frontend only.

Deliverables

  • "Load built-in default" action in PlaybookEditor: fetches GET /remediation/playbooks/embedded (new useLoadEmbeddedPlaybook mutation + playbooksApi.getEmbeddedPlaybook) and prefills a sanitized copy — blank playbookId/name, the default YAML as the editable starting point.
  • Per-row "Duplicate to customize": prefills playbookId=<id>-copy, name, content, and a coerced scopeType.
  • Preview capability pills (role · outputContract · each allowedTool), mirroring ModelAccountManager model-catalog pills.
  • api/playbooks.ts + usePlaybooks.ts extended for the embedded endpoint. New remediation:playbooks i18n keys, translated into all 26 locales via ampel-i18n-builder; frontend/src/i18n/types.ts regenerated.

DoD evidence

  • make test-frontend914 passed / 6 skipped (incl. 3 new PlaybookEditor specs: load-default prefill, duplicate prefill, preview pills)
  • make lint-frontend ✓ · pnpm type-check ✓ · make format-check
  • playbooks/embedded present in frontend/src/api/playbooks.ts; no TODO/FIXME in PlaybookEditor.tsx

Notes

Adversarial review caught a bogus locale directory (a zsh word-split slip in the translate loop) that had polluted types.ts's SupportedLanguage — removed and regenerated. Form refactored to a seed + key={nonce} remount so re-seeding always re-initializes fields.

… & preview pills

Frontend playbook guidance (ADR-006):
- PlaybookEditor 'Load built-in default': fetch GET .../embedded (new
  useLoadEmbeddedPlaybook mutation + playbooksApi.getEmbeddedPlaybook) and
  prefill a sanitized copy (blank id/name, default YAML as the starting point).
- Per-row 'Duplicate to customize': prefill id=<id>-copy, name, content, scope.
- Preview capability pills (role / outputContract / allowedTools), mirroring the
  model-catalog pills.
- Form refactored to a seed + key={nonce} remount so re-seeding re-initializes.
- New remediation:playbooks i18n keys, translated into all 26 locales via
  ampel-i18n-builder; frontend/src/i18n/types.ts regenerated.

Tests: 9 PlaybookEditor specs (3 new) + full suite (914 pass). type-check,
lint, format-check clean. Adversarial review caught a bogus locale dir that had
polluted types.ts — removed and regenerated.
@pacphi

pacphi commented Jul 1, 2026

Copy link
Copy Markdown
Owner Author

Snyk checks have passed. No issues have been found so far.

Status Scan Engine Critical High Medium Low Total (0)
Open Source Security 0 0 0 0 0 issues

💻 Catch issues earlier using the plugins for VS Code, JetBrains IDEs, Visual Studio, and Eclipse.

@github-actions

github-actions Bot commented Jul 1, 2026

Copy link
Copy Markdown
Contributor

📊 Coverage Report

Component Coverage Status
Backend N/A%
Frontend N/A%
Overall N/A%

Coverage Thresholds

  • 🟢 Green: ≥ 80% (target)
  • 🟡 Yellow: 60-79% (acceptable)
  • 🔴 Red: < 60% (needs improvement)

Coverage reports generated by CI workflow

@pacphi
pacphi merged commit fd64683 into develop Jul 1, 2026
21 checks passed
@pacphi
pacphi deleted the autopilot/playbooks-guidance/phase-1 branch July 1, 2026 17:13
pacphi added a commit that referenced this pull request Jul 1, 2026
* chore(autopilot:playbooks-guidance): promote plan to active pipeline + seed ledger

Retires the shipped remediation-model-catalog pipeline (survives in git history
and its ledger). Seeds record 0 of the playbooks-guidance session ledger. pr_ci
mode, base=develop, trunk=main, 4 phases.

* feat(autopilot:playbooks-guidance): phase 0 complete — gate PASSED (#69)

Embedded playbook endpoint + schema-aware field-path validation (ADR-006). All required CI checks green: CI Success, Backend Build/Lint/Unit(SQLite)/Integration(PostgreSQL)/Coverage/Security, frontend + i18n. Adversarial review: 2 findings fixed.

* feat(autopilot:playbooks-guidance): phase 1 complete — gate PASSED (#70)

Load built-in default + duplicate + preview pills; embedded endpoint wired; all i18n keys translated into 26 locales + types.ts regenerated. All required CI green (CI Success, Frontend Build/Lint, Validate React Translations, backend). Adversarial review: bogus locale dir fixed.

* feat(autopilot:playbooks-guidance): phase 2 complete — gate PASSED (#71)

Per-field schema hints + inline field-path validation errors; 27-locale i18n with interpolation-protected code tokens + types.ts regen. All required CI green (CI Success, Frontend Build/Lint, Validate React Translations, backend). Adversarial review: <root> error handling fixed.

* feat(autopilot:playbooks-guidance): phase 3 complete — gate PASSED (#72)

Docs (PLAYBOOKS.md) + preview no-model-call integration test. All required CI green after one rustfmt fix (CI Success, Backend Lint/Build/Integration(PostgreSQL), frontend, docs lint). Feature complete — all 4 phases shipped.

* chore(autopilot:playbooks-guidance): cross-phase optimization — gate PASSED (#73)

Shared invalid_playbook() 422 helper (create/update dedup). All required CI green.

* fix(remediation): refresh default model choices per config/models.yaml

The playbook embedded default overlays and the provider DEFAULT_MODEL fallbacks
held out-of-date model ids. Update both to current catalog choices:
- claude: claude-sonnet-4-6 -> claude-sonnet-5
- gemini: gemini-2.0-flash  -> gemini-2.5-flash (repriced 0.0003/0.0025 per 1k)
- ollama: qwen2.5-coder      -> qwen3-coder:30b-a3b-q4_K_M (runnable Ollama tag)

Updates crates/ampel-worker/playbooks/default.yaml (UI-visible overlays) and the
claude/gemini/ollama provider DEFAULT_MODEL constants (runtime fallback), plus
the gemini cost model + its two pricing tests to match 2.5-flash rates.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant