Commit Graph
17 Commits
Author SHA1 Message Date
Magnus Hedemarkandfactory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com> 2812a927bb feat(agent-council): add eval manifest for output quality
Six schema-v1 eval cases grounded in real skill behavior: council
invocation and bootstrapping, convergence-diagnostic reading,
quick-mode selection, claims-verification discipline, profile-library
fallback, plus one should-not-trigger case for simple factual lookups.
Satisfies the eval-coverage ratchet for this modified skill.

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
2026-08-22 23:15:23 -04:00
Magnus Hedemarkandfactory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com> 6efee5ce2b feat(agent-council): document bootstrap script, add Prerequisites/Limitations, fix description boundary
Add an Available Scripts table for scripts/bootstrap.py with invocation
and run-when guidance; add Prerequisites and Limitations covering the
single-model debate design and claims-verification guardrail. Lead the
frontmatter description with the imperative verb Run and add an explicit
negative boundary so the changed skill passes the CI quality gate; all
trigger keywords are preserved.

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
2026-08-22 23:15:23 -04:00
Magnus HedemarkandGitHub 7243433565 chore: align governance with shipped artifact types (#62)
Closes #61\n\nImplemented and independently reviewed with AI assistance from Jasper on behalf of Magnus Hedemark.
2026-07-17 23:37:37 -04:00
Magnus Hedemark df1b5272e4 docs: prepare repository for GitHub contributors
Signed-off-by: Magnus Hedemark <magnus919@pm.me>
2026-07-11 17:55:18 -04:00
Magnus Hedemark a5f7e74972 fix: resolve skill audit findings 2026-07-11 09:24:58 -04:00
Magnus Hedemark bc04be7726 fix: derive risk severity from agent count instead of hardcoding medium
RiskVector severity was hardcoded to 'medium' for all risks
regardless of how many agents flagged them. Now uses a simple
heuristic: 3+ agents = high, 2 agents = medium, 1 agent = low.
Also deduplicates similar risks and tracks which agents flagged
each one.

Signed-off-by: Magnus Hedemark <magnus919@pm.me>
2026-07-10 01:51:50 -04:00
Magnus Hedemark 526e1ac3f0 fix: map AGENT_COUNCIL_API_KEY to provider-specific env var
PydanticAI reads API keys from provider-specific env vars
(OPENAI_API_KEY, DEEPSEEK_API_KEY, etc.) at Agent creation time.
agent-council was reading AGENT_COUNCIL_API_KEY into a config dict
but never setting the env var PydanticAI actually looks for.

If a user had OPENAI_API_KEY set for something else, agent-council
silently used the wrong key for debate agents.

Fix: load_config() now maps AGENT_COUNCIL_API_KEY to the correct
env var based on the model prefix (openai:, deepseek:, anthropic:,
google:, etc.) and also maps AGENT_COUNCIL_BASE_URL to OPENAI_BASE_URL.
Only sets if not already set, so explicit env vars take precedence.

Signed-off-by: Magnus Hedemark <magnus919@pm.me>
2026-07-10 01:45:07 -04:00
Jasper (AI Assistant) 6d70fcde3b Merge pull request 'fix: add retries=3 to all debate agent phases' (#88) from fix/agent-council-retries into main 2026-07-10 01:21:53 -04:00
Magnus Hedemark 08d1011907 fix: update default model to openai:gpt-5.6-luna and fix model string format
- Updates default model from gpt-4o-mini to gpt-5.6-luna across all
  documentation, config, and CLI help text
- Fixes model string format from provider/model to provider:model
  (PydanticAI convention) in README, SKILL.md, references, and examples
- Fixes anthropic, deepseek, and google example model strings to use
  colon format consistently

Signed-off-by: Magnus Hedemark <magnus919@pm.me>
2026-07-10 01:12:03 -04:00
Magnus Hedemark bddf955686 fix: add retries=3 to all debate agent phases
Adds retry tolerance to structured output parsing across all
debate phases (premortem, position, cross-examine, synthesis,
compose, and verification guardrails). Prevents 'Exceeded
maximum output retries' failures when models produce
near-valid structured output on first attempt.

Signed-off-by: Magnus Hedemark <magnus919@pm.me>
2026-07-10 01:04:17 -04:00
Magnus Hedemark 9a7f119ab0 fix: use enum notation for --agents and --mode in Command Reference
Signed-off-by: Magnus Hedemark <magnus919@pm.me>
2026-07-10 01:00:24 -04:00
Magnus Hedemark 6cb987073e fix: SkillOpt Epochs 1-3 — agent-council prominence, decision intelligence, and pattern expansion
Epoch 1 — Prominence:
- Add --profiles flag to Command Reference
- Add Profile Selection section documenting 39 real profiles,
  auto-selection, and explicit --profiles selection
- Add Claims Verification section to Output documentation
- Add Pitfalls table for common issues

Epoch 2 — Decision Intelligence:
- Add Choosing a Profile Source decision table
- Add Reading the Convergence Diagnostic interpretation guide
  with 8 pattern→meaning→action mappings

Epoch 3 — Pattern Expansion:
- Add JSON output schema reference to Output section
- Add ai-frameworks and hermes-profiles to Related Skills

Signed-off-by: Magnus Hedemark <magnus919@pm.me>
2026-07-10 00:58:24 -04:00
Magnus Hedemark 9f3a68bd66 feat: replace fake personas with real profiles from hermes-profiles
Instead of the compose phase fabricating personas with fake backgrounds,
the council now draws from 39 real professional profiles via a git
submodule (https://github.com/magnus919/hermes-profiles).

Key changes:
- New select phase reads SOUL.md + profile.yaml from profiles submodule
- Auto-updates submodule before selection via git submodule update --remote
- --profiles flag for explicit selection (comma-separated names)
- Auto-selection by keyword overlap with profile descriptions when omitted
- Each agent's identity is their real SOUL.md — actual methodology,
  values, and operating principles, not invented backgrounds
- Falls back to composed personas if profile library is unavailable
- Real profiles produce genuine methodological disagreement (debugger
  said 'unanswerable without a verified process' to naming question)

Signed-off-by: Magnus Hedemark <magnus919@pm.me>
2026-07-10 00:17:56 -04:00
Magnus Hedemark 5293ebd4d6 fix: add factuality guardrails and post-synthesis verification eval
Two-layer defense against fabricated factual claims:

1. Prompt-level guardrail (FACTUAL_CLAIM_GUARDRAIL) injected into every
   debate agent's system prompt — tells agents not to assert specific
   verifiable facts they cannot know (domain availability, package
   namespace status, pricing, etc.)

2. Post-synthesis verification eval — an LLM-based QA pass that scans
   the narrative synthesis for unsubstantiated factual claims and
   appends a 'Claims Not Verified' section to the output with specific
   quotes, claim types, and explanations.

Both layers are self-contained — no search or external tools required.

Signed-off-by: Magnus Hedemark <magnus919@pm.me>
2026-07-09 23:51:49 -04:00
Magnus Hedemark 6d4678cce5 fix: stream progress output during debate instead of silent stall
- Each phase now prints completion status to stdout immediately
- Phase output files written to /tmp/agent-council/<ts>/ as they complete
- Users see real-time progress: persona count, phase timing,
  cross-examination metrics per round, convergence verdict
- Synthesis still printed at end as primary deliverable
- Full intermediate output available in /tmp/agent-council/ for inspection

Signed-off-by: Magnus Hedemark <magnus919@pm.me>
2026-07-09 23:21:16 -04:00
Magnus Hedemark e4ae4e4fd9 fix: add .env file support and update docs
- Adds stdlib-only .env loader (no python-dotenv dependency)
- Env vars always take precedence over .env values
- Updates SKILL.md with .env usage example
- Updates configuration reference

Signed-off-by: Magnus Hedemark <magnus919@pm.me>
2026-07-09 23:05:12 -04:00
Magnus Hedemark 3a4aad40bf feat: add agent-council — multi-agent structured debate system
Spawns a panel of expert agents to debate any question with
convergence-aware iteration and typed synthesis output.

- PydanticAI + PydanticGraph-based Python package
- 5-phase debate protocol: compose → premortem → position →
  cross-examine (iterative, eval-driven) → synthesis
- Convergence detection: confidence dispersion, argument
  novelty, concession rate — stops when diminishing returns
- Typed output schemas (Pydantic models) for every phase
- CLI tool with markdown and JSON output modes
- Custom persona file support
- Bootstrap detection: sys.executable -m pip install fallback
- agentskills.io compatible SKILL.md with triggers

Signed-off-by: Magnus Hedemark <magnus919@pm.me>
2026-07-09 22:55:30 -04:00