ktg-plugin-marketplace/plugins/ultraplan-local/agents
Kjell Tore Guttormsen 7e2d9e151e feat(ultraplan-local): M1 — profile recommendation flow in ultrabrief
Adds the profile recommendation step to /ultrabrief-local Phase 4. The
brief stays universal (same questions, same template); the new step is
purely a processing-decision layer that records which profile downstream
commands should apply.

What lands:
- agents/profile-recommender.md — new sonnet agent that scores available
  profiles against the finalized brief (keyword + NFR-signal matching,
  axis bumps, hallucination gate that forbids inventing profile names).
  Emits a fenced JSON block with ranked entries.
- templates/ultrabrief-template.md — frontmatter gains
  recommended_profile, profile_match, profile_rationale (default values
  applied when only `default` is available — true at M1).
- commands/ultrabrief-local.md — Phase 4 gains Step 4h with explicit
  branches: short-circuit when only `default` exists; AskUserQuestion
  confirmation when top score ≥ 0.7; explicit fallback message when below
  threshold; manual selection sub-question on user override. Persists the
  three frontmatter fields to brief.md after user confirmation. JSON
  parser failure falls back to `default` with `profile_match: fallback`
  rather than blocking — silent fallback is the worst outcome, but a
  *visible* fallback is acceptable.
- scripts/profile-loader.mjs — adds selectRecommendation(ranked, opts) +
  RECOMMENDATION_THRESHOLD=0.7 export. Single source of truth for the
  threshold logic so the command spec and the helper agree.
- scripts/profile-loader.test.mjs — 10 new tests for selectRecommendation
  (default-only, empty/malformed input, above/below threshold, custom
  threshold, max-by-score, missing fields). Total now 36/36.
- README.md / CLAUDE.md / marketplace landing — docs reflect M0 + M1
  shipped, M2 + M3 still pending.

In practice nothing changes for users at M1 because only `default` is
available — Step 4h takes the short-circuit path and writes
`profile_match: default-only`. M2 ships the additional profiles that
make the recommender meaningful.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-30 14:21:54 +02:00
..
architect-orchestrator.md feat(ultraplan-local)!: v2.4.0 — orchestrator agents as inline reference 2026-04-19 21:24:45 +02:00
architecture-critic.md feat(ultraplan-local): v2.3.1 — qualified slug convention for cc-architect-catalog 2026-04-18 17:53:55 +02:00
architecture-mapper.md feat: initial open marketplace with llm-security, config-audit, ultraplan-local 2026-04-06 18:47:49 +02:00
brief-reviewer.md feat(ultraplan-local): v2.1.0 — dynamic quality-gated interview 2026-04-18 09:43:43 +02:00
community-researcher.md feat(ultraplan-local): v1.6.0 — /ultraresearch-local deep research command 2026-04-08 08:58:35 +02:00
concept-extractor.md feat(ultraplan-local): add concept-extractor agent 2026-04-18 15:18:19 +02:00
contrarian-researcher.md feat(ultraplan-local): v1.6.0 — /ultraresearch-local deep research command 2026-04-08 08:58:35 +02:00
convention-scanner.md feat: initial open marketplace with llm-security, config-audit, ultraplan-local 2026-04-06 18:47:49 +02:00
dependency-tracer.md feat: initial open marketplace with llm-security, config-audit, ultraplan-local 2026-04-06 18:47:49 +02:00
docs-researcher.md feat(ultraplan-local): v1.6.0 — /ultraresearch-local deep research command 2026-04-08 08:58:35 +02:00
feature-matcher.md feat(ultraplan-local): v2.3.1 — qualified slug convention for cc-architect-catalog 2026-04-18 17:53:55 +02:00
gap-identifier.md feat(ultraplan-local): v2.3.1 — qualified slug convention for cc-architect-catalog 2026-04-18 17:53:55 +02:00
gemini-bridge.md feat(ultraplan-local): v1.6.0 — /ultraresearch-local deep research command 2026-04-08 08:58:35 +02:00
git-historian.md feat: initial open marketplace with llm-security, config-audit, ultraplan-local 2026-04-06 18:47:49 +02:00
ip-hygiene-checker.md feat(ultraplan-local): add ip-hygiene-checker agent 2026-04-18 15:20:27 +02:00
plan-critic.md feat(ultraplan-local): v1.7.0 — self-verifying plan chain 2026-04-12 07:38:16 +02:00
planning-orchestrator.md feat(ultraplan-local)!: v2.4.0 — orchestrator agents as inline reference 2026-04-19 21:24:45 +02:00
profile-recommender.md feat(ultraplan-local): M1 — profile recommendation flow in ultrabrief 2026-04-30 14:21:54 +02:00
research-orchestrator.md feat(ultraplan-local)!: v2.4.0 — orchestrator agents as inline reference 2026-04-19 21:24:45 +02:00
research-scout.md feat: initial open marketplace with llm-security, config-audit, ultraplan-local 2026-04-06 18:47:49 +02:00
risk-assessor.md feat: initial open marketplace with llm-security, config-audit, ultraplan-local 2026-04-06 18:47:49 +02:00
scope-guardian.md feat: initial open marketplace with llm-security, config-audit, ultraplan-local 2026-04-06 18:47:49 +02:00
security-researcher.md feat(ultraplan-local): v1.6.0 — /ultraresearch-local deep research command 2026-04-08 08:58:35 +02:00
session-decomposer.md feat(ultraplan-local): v1.7.0 — self-verifying plan chain 2026-04-12 07:38:16 +02:00
skill-author-orchestrator.md feat(ultraplan-local): add skill-author-orchestrator 2026-04-18 15:21:37 +02:00
skill-drafter.md fix(ultraplan-local): v2.3.2 — skill-drafter slug-collision hint 2026-04-18 18:06:37 +02:00
task-finder.md feat: initial open marketplace with llm-security, config-audit, ultraplan-local 2026-04-06 18:47:49 +02:00
test-strategist.md feat: initial open marketplace with llm-security, config-audit, ultraplan-local 2026-04-06 18:47:49 +02:00