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>
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>
- 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>
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>
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>
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>
- 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>
- 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>
- Added 'Human-readable README' row to the Format Compliance table
- New README Format section defining 6 required sections + style guidance
- Added README validation to the Validate Your Output checklist
- References data-scientist/README.md as the canonical format example
Each README is written for a human audience, explaining:
- What the skill does (not what format it follows)
- What benefit the user gets from installing it
- Quick setup and usage patterns
- When to load/trigger the skill
- What scripts, references, and templates it ships
data-scientist already had a README — left unchanged.
48 READMEs added across all skill and bundle directories.
Major deepening of the langchain expert skill based on source audit against
official LangChain docs (docs.langchain.com, reference.langchain.com).
Changes:
- Added references/validation-audit.md documenting all research findings
- Deepened references/agent-patterns.md from 74 to 200+ lines:
create_react_agent full parameter table, @tool decorator with
args_schema/parse_docstring, streaming events, multi-agent supervisor
- Deepened references/lcel-reference.md from 79 to 180+ lines:
RunnablePassthrough.assign(), RunnableParallel dict shorthand,
RunnableLambda, RunnableConfig, .with_fallbacks(), .configurable_fields()
- Deepened references/rag-strategies.md with advanced retrieval patterns
- Deepened references/production-deployment.md with LangSmith Datasets/
Evaluation Runs/Prompt Hub
- Added new references/callbacks.md (BaseCallbackHandler, event table,
agent auditing patterns, async callbacks)
- Deepened references/faq-and-troubleshooting.md with Pydantic v1/v2,
streaming+tools, checkpoint serialization guidance
All API surface claims verified against official documentation.
v1.0.3 -> v1.1.0
Edits accepted and merged:
- Framework comparison table: PydanticAI vs LangGraph vs using both together
- Boundary conditions: when to choose each framework
- Hybrid pattern reference: PydanticAI agent as LangGraph StateGraph node
- Updated 'When to Load Which Reference' table with boundaries entry
- Updated Directory Structure listing
New reference file: references/hybrid-pydanticai-langgraph.md (7KB)
Version bumped from 1.0.3 to 1.0.4.
All 3 validation tasks passed with no regressions:
- Val-1: Multi-agent delegation (pass)
- Val-2: Hybrid PydanticAI+LangGraph pattern (pass, all 6 criteria)
- Val-3: Streaming agent (pass)
Signed-off-by: Magnus Hedemark <magnus919@pm.me>
Edits accepted and merged:
- Run method decision table (when to use run/run_sync/run_stream/run_stream_events/iter)
- Graph API comparison table (BaseNode vs GraphBuilder trade-offs)
- Error handling quick-pick with exception table and recovery patterns
Version bumped from 1.0.2 to 1.0.3.
All 3 validation tasks passed with no regressions (6/6, 10/10, 8/8 rubric items).
Signed-off-by: Magnus Hedemark <magnus919@pm.me>
Edits accepted and merged:
- Added defer_model_check gotcha to SKILL.md Gotchas section
- Added defer_model_check usage note to core-agents.md constructor params
- Added pytest-asyncio dependency note to testing-evals.md
- stream_text/structured output gotcha added from validation findings
- graph.run() returns output not state gotcha added from validation findings
Version bumped from 1.0.0 to 1.0.1.
All 3 training rollouts passed (6/6, 5/5, 6/6 rubric items).
All 3 validation tasks passed (6/6, 10/10, 8/8 rubric items).
No regressions detected.
Signed-off-by: Magnus Hedemark <magnus919@pm.me>
- Add version lookup guidance to custom-images.md (check GH releases)
- Add gh CLI commands for runner group creation to management.md
- Expand trigger table in SKILL.md with natural-language alternatives
- Bump v1.0.0 → v1.0.1
- SKILL.md with trigger table, quick reference, deployment spectrum, and pitfalls
- references/ for architecture, deployment (systemd/Docker/ARC/Scale Set Client),
security, autoscaling, management, custom images, and network
- templates/ for docker-compose.yml and custom-runner.Dockerfile
- AGENTS.md updated with trigger row in alphabetical order
E2-A: Fix cache duration format (30d → 720h) — Go's time.ParseDuration
does not support day units. Added note about valid Go duration syntax.
E2-B: Add EnableAllLanguages call to content adapter example — order
matters: must be called BEFORE iterating to produce multilingual output.
E2-C: Add .Site.LastChange pitfall — not available on taxonomy/term/
section pages. Added fallback pattern using now.Format.
E2-D: Add Build Performance Troubleshooting section with diagnostic
table (symptom → cause → fix) and 5 quick wins in order of impact.
Adds step-by-step theme bootstrap checklist (E1-A), consolidated
Tailwind v4 deployment checklist (E1-B), Hugo version column in
reference table (E1-C), and flash-prevention cross-reference (E1-D).
Validation: held-out task built a complete Tailwind v4 theme with
dark mode and responsive images — 9 pages, 2 images at 3 sizes
each, 0 errors, 0 warnings. All 4 edits accepted.
Six reference files covering template architecture, asset pipeline,
shortcodes and render hooks, content organization and i18n, modules
and performance optimization, and SEO/output formats/CI/CD.
Add Step 0 to the bundle-builder file creation order: generate and
register an umbrella SKILL.md at the bundle root before any sub-skills
are created. The umbrella provides the auto-detectable entry point
with broad trigger conditions, Mermaid flowchart, phase table, and
navigation instructions.
Also update:
- workflow-architect SKILL.md: list umbrella in 'What You Get' and
update Loading Protocol step 5 to mention registration
- workflow-architect AGENTS.md: add Registration section explaining
how umbrella and sub-skills are registered via skill_manage()
Closes#52
Ships a portable Python CLI (stdlib only, zero external dependencies) with:
- search: keyword search via gutendex API
- metadata: full book metadata by Gutenberg ID
- download: plain text, EPUB, or HTML format
- extract: strip PG boilerplate or extract text from EPUB
- classify: fiction vs non-fiction classification
- pipeline: full search → download → extract → classify workflow
AgentSkills.io compliant with SKILL.md, scripts/gutenberg, and
references/epub-extraction.md for progressive disclosure.
- Existing Bicycle Infrastructure: ExistingBicycleInfrastructure_Public → Existing_Bicycle_Infrastructure
- Speed Humps: Speed_Humps → SpeedHumps
- EVSE Stations: EVSE_Stations → EVSE_Stations_View
All three verified against live API — returning real data now.