Commit Graph
100 Commits
Author SHA1 Message Date
Magnus HedemarkandGitHub 55e5ba4b7c Merge pull request #166 from magnus919/fix/chief-task-discipline
Require dated commitments for chief-of-staff tasks
2026-07-29 11:11:15 -04:00
Magnus HedemarkandGitHub c47f604482 Merge pull request #165 from magnus919/chore/remove-comic-chat 2026-07-27 10:06:55 -04:00
Magnus HedemarkandGitHub b84b4aa43f Merge pull request #162 from magnus919/feat/comic-chat 2026-07-27 07:48:51 -04:00
Magnus HedemarkandGitHub 49b2bbc472 Merge pull request #108 from magnus919/release-please--branches--main
chore(main): release 0.5.0
2026-07-26 23:38:04 -04:00
Magnus HedemarkandGitHub 4b60a2efa0 Merge pull request #160 from magnus919/fix/skillopt-grafana-3epochs
fix: require evidence for Grafana dashboard defaults
2026-07-26 21:22:17 -04:00
Magnus HedemarkandGitHub e62152cf6b Merge pull request #161 from magnus919/feat/pace-plan
feat(skill): add PACE plan lifecycle
2026-07-26 21:19:39 -04:00
Magnus HedemarkandGitHub cfbcfb09ec Merge pull request #158 from magnus919/fix/raleigh-rpd-live-queries
fix(raleigh): restore live RPD queries
2026-07-26 20:06:02 -04:00
Magnus Hedemarkandusername 6164632151 test(raleigh): cover empty police canary responses 2026-07-26 20:03:33 -04:00
Magnus Hedemarkandusername 3e4b651681 test(raleigh): prevent false-green police canaries 2026-07-26 20:02:14 -04:00
Magnus Hedemarkandusername 4a23562e59 fix(raleigh): restore live RPD queries 2026-07-26 19:58:54 -04:00
Magnus HedemarkandGitHub 4c824b7a09 Merge pull request #156 from magnus919/feat/grafana-skill
feat(grafana): add operations skill
2026-07-26 19:41:50 -04:00
Magnus Hedemark e304366915 feat(grafana): add operations skill 2026-07-26 19:37:08 -04:00
Magnus HedemarkandGitHub dcd6f59fe3 Merge pull request #155 from magnus919/feat/raleigh-public-safety-statistics
feat(raleigh): expose official public safety statistics
2026-07-26 18:59:48 -04:00
Magnus Hedemarkandusername 1bd7b06112 fix(raleigh): enforce publication request contracts 2026-07-26 18:56:09 -04:00
Magnus Hedemarkandusername cc26b4cb27 fix(raleigh): bound publication source contracts 2026-07-26 18:52:02 -04:00
Magnus Hedemarkandusername 07c2ae2e8f fix(raleigh): normalize statistics source failures 2026-07-26 18:47:32 -04:00
Magnus Hedemarkandusername f3dfb68832 fix(raleigh): normalize report probe failures 2026-07-26 18:44:48 -04:00
Magnus Hedemarkandusername 9f2e4b681c fix(raleigh): validate included resource identifiers 2026-07-26 18:41:19 -04:00
Magnus Hedemarkandusername 5f74b4dde5 fix(raleigh): reject malformed content identifiers 2026-07-26 18:38:28 -04:00
Magnus Hedemarkandusername 8becc22822 fix(raleigh): fail on missing statistics sections 2026-07-26 18:36:01 -04:00
Magnus Hedemarkandusername bf69aa1689 fix(raleigh): validate statistics response shapes 2026-07-26 18:33:14 -04:00
Magnus Hedemarkandusername b030f2607c feat(raleigh): add official public safety statistics 2026-07-26 18:30:09 -04:00
Magnus HedemarkandGitHub 12b650e6dc Merge pull request #154 from magnus919/feat/raleigh-rfd-reports
feat(raleigh): add guarded fire report lookups
2026-07-26 18:09:34 -04:00
Magnus HedemarkandGitHub 34fab96b8e fix: require causal layer maps for cyberpunk image briefs
fix: require causal layer maps for cyberpunk image briefs
2026-07-26 11:49:41 -04:00
10054621ce fix(skills): rename gibson-cyberpunk to cyberpunk (#150)
Co-authored-by: username <username@users.noreply.github.com>
2026-07-26 10:35:36 -04:00
Magnus HedemarkandGitHub daece120ee feat: add Gibson cyberpunk skill (#149)
AI assistance was used to research, draft, and validate this contribution.
2026-07-26 10:09:49 -04:00
Magnus HedemarkandGitHub fdb00b4aac fix(life-coach): simplify capability onboarding (#148)
AI-assisted: yes
2026-07-25 21:19:29 -04:00
86ac280476 fix(llama-cpp): harden operational diagnostics (#147)
Co-authored-by: magnus919 <magnus919@users.noreply.github.com>
2026-07-25 13:01:38 -04:00
Magnus HedemarkandGitHub 795d1423f8 feat: add evidence-aware life coaching skill (#146)
Adds the life-coach Agent Skill with evidence-aware safeguards, capability validation, templates, and evaluations.

Meaningful AI assistance: yes
2026-07-25 11:26:23 -04:00
Magnus HedemarkGitHubmagnus919 <magnus919>
58457b495c feat: add llama.cpp operations skill (#145)
Co-authored-by: magnus919 <magnus919>
2026-07-25 09:41:51 -04:00
Magnus HedemarkGitHubmagnus919 <magnus919>
1f5cd6a91c feat(raleigh): add fire protection proximity lookup (#144)
Co-authored-by: magnus919 <magnus919>
2026-07-25 01:48:53 -04:00
Magnus HedemarkGitHubmagnus919 <magnus919>
d4ab656c50 feat(raleigh): add Raleigh-Wake ECC active incident feed adapter (#142)
* feat(raleigh): add Raleigh-Wake ECC active incident feed adapter

Add an isolated, capability-limited adapter for the RWECC public
incident feed (incidents.rwecc.com/getdata). The adapter:

- Calls only the fixed public host and exact read-only endpoint
- Supports agency, incident type, and bounded result filters
- Preserves source identifiers without implying a historical archive
- Labels every response as a filtered active feed, not all 911 calls
- Fails/warns distinctly on empty, stale, malformed, and unavailable
  responses; empty feed is not reported as proof of no incidents
- Deduplicates records and guards against schema drift
- Can be disabled independently via RALEIGH_DISABLE_INCIDENTS=1
- Uses a 90-second cache lifetime

Closes #123

* chore: regenerate catalog artifacts for updated raleigh description

---------

Co-authored-by: magnus919 <magnus919>
2026-07-25 01:23:48 -04:00
Magnus HedemarkGitHubmagnus919 <magnus919>
0ca5c242ce feat(raleigh): add first-class RFD incident workflows and normalize the 2026 schema (#140)
Add a fire command group with two subcommands (incidents, response-times)
that resolve the stable ArcGIS item IDs for RFD's full public history
(2007–present) and past-month feeds, with source-aware filtering and a
normalization layer for the 2026 classification schema transition.

- New raleighlib/fire.py module with item resolution, field discovery,
  WHERE clause construction (TIMESTAMP literals; these layers reject
  epoch-ms date comparisons), and era-aware normalization
- CLI commands: fire incidents, fire response-times with --source,
  --since (now supports y), --station, --platoon, --group, --type,
  --limit, --offset
- Normalizes incident_type/incident_type_description (pre-2026) and
  incident_group_name/incident_subgroup_code/incident_type_name (2026+)
  into stable keys without fabricating cross-era mappings; raw fields
  preserved in JSON
- Response durations in labeled seconds; missing, reversed, and
  malformed timestamp pairs rejected per-pair, never zero-filled
- Documents RFD's exclusion of incident types 300–399 and 661
  (EMS/privacy)
- 45 unit tests covering both sides of the 2026 transition, injection
  safety, pagination, CLI dispatch, and error paths
- 3 new eval cases: transition normalization, response-time units,
  EMS privacy exclusion
- references/fire-reference.md with schemas, transition rules, caveats

Closes #122

Co-authored-by: magnus919 <magnus919>
2026-07-25 00:44:19 -04:00
Magnus HedemarkGitHubmagnus919 <magnus919>
50be18b8c2 feat(raleigh): add first-class RPD incident workflows (#139)
Add a police command group with four subcommands (incidents, recent,
previous-day, history) that resolve stable ArcGIS item IDs at runtime
and provide source-aware, filter-friendly access to RPD incident data.

- New raleighlib/police.py module with item resolution, field discovery,
  WHERE clause construction, and location privacy handling
- CLI commands: police incidents, police recent, police previous-day,
  police history with --since, --category, --district, --limit, --offset
- Source labeling (_source, _item_id, _retrieved_at, _location_status)
- Redacted/zero-coordinate suppression (never emits fake points)
- LIKE wildcard and SQL quote escaping for user-supplied filters
- NIBRS date boundary warning when --since predates June 2014
- 30 unit tests covering source selection, filters, injection, redaction,
  pagination, CLI dispatch, and error paths
- 5 new eval cases rejecting arrest/conviction/completeness claims
- references/police-reference.md with field schemas and caveats

Closes #121

Co-authored-by: magnus919 <magnus919>
2026-07-25 00:16:50 -04:00
Magnus HedemarkGitHubmagnus919 <magnus919>
2f535b05f7 ci(raleigh): add scheduled live endpoint and schema canary (#138)
Add a live canary that runs the full Hub catalog check (190 endpoints)
and probes all fixed non-Hub adapters (geocode, transit GTFS,
development, civic JSON:API, civic RSS, meetings eSCRIBE, imagery).

Validates source-specific minimum schemas, classifies failures into
transport_outage, auth_regression, arcgis_error, schema_drift,
parser_failure, and empty_but_valid. Retries bounded transient
failures and preserves first-failure evidence.

Runs daily at 10:17 UTC and on workflow_dispatch, separate from PR CI
so upstream outages do not block unrelated changes.

Closes #120

Co-authored-by: magnus919 <magnus919>
2026-07-24 23:52:24 -04:00
Magnus HedemarkGitHubmagnus919 <magnus919>
0bae0c5051 test(raleigh): make public-safety output evals an executable quality gate (#137)
Rewrite raleigh/evals/evals.json with machine-gradable assertions and
expand to 12 cases covering the public-safety acceptance criteria:

- RPD incidents: current official source, no stale endpoints, no
  completeness claims
- RPD privacy: randomized/redacted location language, no exact-address
  claims
- RFD classification: current fields from live metadata, no deprecated
  or hardcoded schemas
- Dispatch: labeled as filtered public feed, not all 911 calls
- Empty feeds: missing evidence, not proof of zero incidents
- Security refusal: write ops, arbitrary hosts, private portals

All assertions use deterministic grader patterns (response_contains,
response_not_contains, exit_status, activation_evidence_contains).
Cases are tagged with case_set (regression/release) for the release
evaluation layer from #106.

The paired eval pipeline runs in CI with the fake adapter (validates
pipeline, 0 regressions). Real model grading runs on the self-hosted
runner post-merge.

Documents local eval suite execution in README.

Closes #118

Co-authored-by: magnus919 <magnus919>
2026-07-24 23:36:50 -04:00
Magnus HedemarkGitHubmagnus919 <magnus919>
0a80bda800 feat: add release-grade repeated and rubric-based skill evaluation (#136)
Add release evaluation layer on top of deterministic paired execution:

- schemas/release-eval-v1.schema.json: release report schema with freeze
  snapshot, per-case trial aggregation, rubric graders, blinded pairwise
  comparison, calibration tracking, and PASS/CONDITIONAL/HOLD/BLOCK outcomes
- eval_runner/release.py: core module for multi-trial aggregation, versioned
  rubric graders with abstain/insufficient-evidence, pairwise planning with
  position randomization and order-reversal testing, calibration records,
  and release decision computation
- eval_runner/tests/test_release.py: 34 tests covering all acceptance criteria
- schemas/evals-v1.schema.json: optional case_set field (dev/regression/release)
- eval_runner/models.py: case_set on EvalCase
- eval_runner/runner.py: load case_set from manifest
- .github/workflows/skill-eval.yml: run release tests in CI

Gate semantics: hard invariants (privacy, auth, destructive) tolerate zero
violations and cannot be averaged away. Missing evidence produces HOLD, not
PASS. Uncalibrated judge results are advisory only.

Closes #106

Co-authored-by: magnus919 <magnus919>
2026-07-24 23:26:07 -04:00
Magnus HedemarkGitHubmagnus919 <magnus919>
390f3e3417 feat: run isolated paired candidate and baseline skill evaluations (#133)
* feat: run isolated paired candidate and baseline skill evaluations

Build the first complete paired skill-evaluation path: stage an immutable
candidate, run matched candidate and baseline trials in clean environments,
execute deterministic outcome graders, and produce a case-level comparison
report.

- eval_runner/sandbox.py: stages production-visible skill surface read-only,
  excludes eval manifests/rubrics/oracles from subject sandbox
- eval_runner/grader.py: deterministic assertion checker (7 assertion types)
- eval_runner/comparison.py: paired comparison report generation
- eval_runner/paired.py: orchestrator CLI (fake, cli, openai adapters)
- eval_runner/openai_adapter.py: OpenAI-compatible API adapter with
  chat_template_kwargs support (enable_thinking toggle)
- schemas/comparison-report-v1.schema.json: report schema
- .github/workflows/skill-eval.yml: CI smoke (fake adapter on ubuntu,
  real model on self-hosted runner when endpoint reachable)
- yc-default-alive-calculator/evals/evals.json: initial 5-case eval manifest

Verified against google_gemma-4-26B-A4B-it-IQ4_XS.gguf: 5/5 candidate
improvements, 0 regressions.

Closes #105

* ci: make paired-eval-model job non-blocking

The self-hosted runner may not always be online. Mark the job
continue-on-error so it doesn't gate PRs when the runner is unavailable.

* ci: isolate model evals from pull requests

* fix(raleigh): test arrivals against a daily route, not weekday-only

The fixture only had a WEEK (Mon-Fri) service, so
test_get_arrivals_for_stop returned 0 arrivals on weekends when
_today_date() fell on Saturday/Sunday. Add a DAILY service with trip T3
on route R2 and assert against it — the test now passes regardless of
what day CI runs.

* ci: trigger checks on amended commit

---------

Co-authored-by: magnus919 <magnus919>
2026-07-24 23:12:44 -04:00
Magnus HedemarkGitHubmagnus919 <magnus919>
e8358bd50f test(raleigh): fix arrivals service date (#135)
Co-authored-by: magnus919 <magnus919>
2026-07-24 23:03:40 -04:00
Magnus HedemarkGitHubmagnus919 <magnus919>
365624ed3e docs(artifact-pyramids): document pyramid-status.sh validation pitfalls (#132)
Co-authored-by: magnus919 <magnus919>
2026-07-24 18:53:19 -04:00
Magnus HedemarkGitHubmagnus919 <magnus919>
9b98653aeb docs: add PR-to-issue closing keyword directive to AGENTS.md (#131)
Co-authored-by: magnus919 <magnus919>
2026-07-24 18:50:40 -04:00
Magnus HedemarkGitHubmagnus919 <magnus919>
e83558a6e3 feat: add harness adapter contract and reproducible eval run artifacts (#130)
Implements #104. Adds a repository-level evaluation runner with:
- Typed HarnessAdapter Protocol (adapter.py)
- Dataclass models for AdapterInput/AdapterOutput (models.py)
- FakeAdapter for deterministic CI without credentials (fake_adapter.py)
- CliSubprocessAdapter for non-interactive CLI harnesses (cli_adapter.py)
- Run manifest builder with schema validation (manifest.py)
- Runner CLI entry point (runner.py, __main__.py)
- JSON Schema for trial manifests (schemas/run-manifest-v1.schema.json)
- Unit tests including schema validation (tests/test_runner.py)

Co-authored-by: magnus919 <magnus919>
2026-07-24 18:46:18 -04:00
Magnus HedemarkGitHubmagnus919 <magnus919>
a617ccaf2d feat: validate eval manifest coverage states (#129)
* feat: validate eval manifest coverage states

* test: create fixture directory explicitly

---------

Co-authored-by: magnus919 <magnus919>
2026-07-24 18:13:32 -04:00
Magnus HedemarkandGitHub 7495651fe5 Merge pull request #128 from magnus919/ci/raleigh-tests-119
ci(raleigh): run deterministic CLI tests for Raleigh changes
2026-07-24 16:46:19 -04:00
Magnus HedemarkGitHubmagnus919 <magnus919>
547aed2db9 fix(verification): preserve requested source fidelity (#127)
Co-authored-by: magnus919 <magnus919>
2026-07-24 16:42:39 -04:00
Magnus HedemarkandGitHub eff14ca2b7 Merge pull request #117 from magnus919/feat/raleigh-v2
feat: expand Raleigh civic data skill
2026-07-23 21:47:01 -04:00
Magnus HedemarkandGitHub 1e10a56199 fix: complete eval ratchet verification (#109)
Closes #102

Authored by Jasper (AI agent on behalf of @magnus919).
2026-07-22 02:16:36 -04:00
Magnus HedemarkandGitHub fc8a8952ee fix: enforce eval coverage ratchet for complete changed skill directories (#107)
Wire the Phase 3 ratchet into CI by passing the PR base SHA to
eval-coverage.py --modified-from. Expand changed-skill detection from
SKILL.md-only diffs to the entire skill directory so that references,
scripts, fixtures, README, and eval manifest edits all count as
modifications. Add a monotonic coverage floor that fails CI when
coverage decreases between the base and candidate revisions.

Add script tests for ratchet-mode detection and coverage-decrease
behaviour. Update AGENTS.md and CONTRIBUTING.md to describe the
behaviour CI now enforces.

Closes #102

Signed-off-by: Magnus Hedemark <magnus919@pm.me>
2026-07-22 01:51:57 -04:00
Magnus HedemarkGitHubmagnus919 <magnus919>
8514c00b20 docs: update governance docs for description, eval, and generator contracts (#101)
Align AGENTS.md and CONTRIBUTING.md with the description-quality gates (#97, #98), eval coverage ratchet (#99), and trigger-boundary and eval requirements (#100) merged today. Document that CI validates generated artifact freshness but does not regenerate; contributors run generators locally with --write.

Co-authored-by: magnus919 <magnus919>
2026-07-21 22:33:56 -04:00
Magnus HedemarkGitHubmagnus919 <magnus919>
9a6eed2de4 docs(agent-skills): require trigger boundaries and evals (#100)
Align the meta-skill workflow with the repository's description-quality and eval-coverage gates. Keep harness-specific trigger checks separate from portable output-quality evals.

Co-authored-by: magnus919 <magnus919>
2026-07-21 21:39:35 -04:00
Magnus HedemarkandGitHub be0c8df5e2 feat: eval coverage ratchet — gate new skills, track coverage, ratchet thresholds (#99)
Phase 1: New skills (not in grandfathered-skills.txt) must have
evals/evals.json with at least 5 test cases. All 107 existing skills
are grandfathered.

Phase 2: scripts/eval-coverage.py reports coverage (skills with/without
evals, case counts, reference-priority sorting). Added as informational
CI step.

Phase 3: Ratchet thresholds — at 25% coverage, modified skills without
evals get a warning; at 50%, they fail CI. Enforced via
--modified-from flag for PR-scoped checks.

Closes #90
2026-07-21 21:03:21 -04:00
Magnus HedemarkGitHubmagnus919 <magnus919>
dd457f1170 fix: close skill quality lint gaps (#98)
Co-authored-by: magnus919 <magnus919>
2026-07-21 20:47:16 -04:00
Magnus HedemarkGitHubmagnus919 <magnus919>
c092a14c8e feat: validate changed skill descriptions (#97)
Co-authored-by: magnus919 <magnus919>
2026-07-21 20:00:38 -04:00
Magnus HedemarkGitHubmagnus919 <magnus919>
2010a00229 docs: add skills.sh installation guide (#96)
Co-authored-by: magnus919 <magnus919>
2026-07-21 18:55:14 -04:00
Magnus HedemarkandGitHub 9ed80c9191 docs: move skill trigger table to reference (#95)
Closes #87\n\nAI-assisted: yes (Jasper/Hermes Agent)
2026-07-21 18:21:42 -04:00
Magnus HedemarkandGitHub 08fafacd6c feat(qa-methodology): add ci-failure-triage and test-debugging references (#94)
Two new reference files extending qa-methodology into the reactive side
of its domain — diagnosing failures rather than designing strategy.

ci-failure-triage.md: systematic CI failure diagnosis — runner
availability checks, log triage (gh run view), exit 137 / container
termination evidence-first procedure, pre-existing vs regression
classification, flaky test management, and compose readiness corollary.
Distilled from accumulated CI-failure incident notes.

test-debugging.md: diagnosing broken tests — mock path binding after
module-to-package refactors, FastAPI startup race (mock state set before
TestClient context is overwritten), httpx mock transport pattern, test
execution integrity (collection count vs exit code), deterministic
integration seeds, API signature change fixture recovery, and uv
lockfile hygiene. Distilled from accumulated test-debugging incident
notes.

Both are technique libraries serving qa-methodology's existing domain,
not new standalone skills. SKILL.md reference table updated.

Signed-off-by: Magnus Hedemark <magnus919@pm.me>
2026-07-21 18:05:03 -04:00
Magnus HedemarkGitHubmagnus919 <magnus919>
cde4a67ef4 feat: add generated llms.txt skill index (#93)
Generate a root discovery catalog from public skill frontmatter and fail CI
when the committed index drifts. Add a fixture-based regression test for
bundle paths, nested-helper exclusion, normalized descriptions,
deterministic ordering, and stale-file recovery.

Closes #78

AI-assisted: yes (Jasper/Hermes Agent)

Co-authored-by: magnus919 <magnus919>
2026-07-21 17:48:38 -04:00
Magnus HedemarkandGitHub 1037324c2a feat: add programming-principles skill (14 classic software books) (#92)
* feat: add programming-principles skill (14 classic software books)

- SKILL.md v0.2.0 with cross-cutting principles, task-to-book mapping,
  and code-assessment workflow
- 29 reference files (14 mini + 14 full + assessment methodology)
- Agent-agnostic frontmatter (compatibility field, no Hermes-specific metadata)
- Wire neckbeard routing table: code review/refactoring/quality assessment
- Regenerate Claude marketplace + Codex plugin manifests (97 skills)

Source: magnus919/programming-principles (standalone repo, v0.1.1).
Local copy was v0.2.0 with code-assessment-workflow.md not yet upstreamed.
Standalone repo will be archived with redirect after merge.

* fix: satisfy validator — frontmatter fields, skill README, catalog entry

- Strip version/author/source from frontmatter (unsupported fields)
- Move source attribution into metadata (string-to-string map)
- Add programming-principles/README.md with required headings
- Add catalog entry to root README.md (alphabetical position)

Validator passes locally: 107 canonical skills.
2026-07-21 17:29:56 -04:00
Magnus HedemarkandGitHub 3d650dad77 fix: correct bundle skill paths in Codex plugin manifest (#91)
The generator used File.basename which stripped the bundles/ prefix,
emitting ./neckbeard instead of ./bundles/neckbeard. Codex discovered
92/96 skills — the 4 bundle entrypoints were missing because their
paths didn't resolve.

Verified with live Codex CLI: all 96 skills now discoverable.

AI-assisted: yes (Jasper/Hermes Agent)
2026-07-21 14:20:56 -04:00
Magnus HedemarkandGitHub 2b9d5a765b docs(traefik): add CSP/SPA debugging pitfall and reference (#86) 2026-07-21 10:18:43 -04:00
Magnus HedemarkandGitHub 051bf2a9c6 fix: SkillOpt 3-epoch optimization of neckbeard — description, routing, stage alignment (#84)
* fix: SkillOpt Epoch 1 — neckbeard description trigger-verb-first

Move trigger verbs (fix/build/refactor/review/verify/release) to the front
of the description for better discoverability. Negative case (non-software
questions) now correctly rejected. Validation: 4/6 held-out tasks correct.

* fix: SkillOpt Epoch 2 — wire overlooked catalog specialists into routing

Add 6 stage-owning methodology skills to the routing table and SKILL.md
summary: secure-software-engineering, web-accessibility, qa-methodology,
product-design-and-ux, api-design-and-evolution, site-reliability-engineering.
Note product-methodology and c4-diagramming as narrower composers.

Baseline rollout showed security reviews, UI features, and regression-safety
questions all routed without their natural specialist. Validation: 6/6 held-out
routing tasks now route correctly (baseline 3/6). All additions are
agent-agnostic methodology skills; no Hermes/deployment/personal content.

* fix: SkillOpt Epoch 3 — align stages.md Stage 4 with expanded routing

Stage 4 execution flow now names the same specialists added to the routing
table in Epoch 2: secure-software-engineering and web-accessibility for
implementation, qa-methodology for verification, product-design-and-ux and
api-design-and-evolution for design, site-reliability-engineering for delivery.

Rollout confirmed the gap: an agent following stages.md alone would route a
security-sensitive change (untrusted input, trust-boundary crossing) with no
security specialist. Validation: PASS — stages.md now names the specialist.

* fix: SkillOpt final validation — remove Hermes-specific skill_view reference

Replace skill_view(name="neckbeard") with agent-agnostic "read SKILL.md"
in Quick Start. Public skill must not reference Hermes-specific APIs.

* chore: regenerate Claude marketplace for neckbeard description update
2026-07-21 03:20:16 -04:00
Magnus HedemarkandGitHub 0f2aaf1583 feat: add Codex plugin packaging (single-plugin, metadata-only) (#83)
* feat: add Codex plugin packaging (single-plugin, metadata-only)

Adds .codex-plugin/plugin.json with a skills array listing all public
skills, plus .agents/plugins/marketplace.json for one-command install:

  codex plugin marketplace add magnus919/agent-skills
  codex plugin install magnus919

Same pattern as mattpocock/skills — one plugin, explicit skill paths,
no dist/, no curation, no duplication. Bundle-internal helpers excluded
by the shared glob. CI check mode fails if the manifest drifts.

Closes #79

AI-assisted: yes (Jasper/Hermes Agent)

* chore: trigger CI

* chore: regenerate Codex plugin manifest to include neckbeard bundle
2026-07-21 03:13:20 -04:00
Magnus HedemarkandGitHub e1677183cd feat: add neckbeard, an evidence-driven SDLC skill bundle (#81)
* feat: add neckbeard, an evidence-driven SDLC skill bundle

A portable operating model for software delivery that routes a change through
framing, discovery, design, implementation, review, verification, delivery, and
learning. Chooses the smallest *safe* intervention (minimalism as a consequence
of understanding, not a reflex), proves it at the real delivery boundary, and
leaves an inspectable evidence ledger.

Design responds directly to the Ponytail/YAGNI benchmark critique: no persona,
no LOC-as-success-proxy, no universal performance claims. Composes the specialist
catalog (product-discovery, spec-driven-development, software-architecture-analysis,
systematic-debugging, technical-documentation, verification-methodology) via an
explicit routing table rather than duplicating it.

Ships a versioned evaluation harness (task schema, scoring rubric, baseline
protocol, runner, and 10 fixtures across all 9 task classes incl. adversarial and
no-change-needed cases) that measures SDLC outcomes, never LOC or brevity.

Closes #25

* chore: regenerate Claude marketplace for neckbeard
2026-07-21 02:30:34 -04:00
Magnus HedemarkandGitHub 3c8b6cd71c feat: add Claude Code plugin marketplace (metadata-only catalog) (#80)
Adds .claude-plugin/marketplace.json exposing all 95 public skills as
installable plugins via /plugin marketplace add magnus919/agent-skills.

Metadata-only approach: each entry uses source './' + skills ['./<name>']
+ strict:false, so no per-skill plugin.json or directory restructuring is
needed. Bundle-internal helper skills are excluded; bundle entrypoints are
included.

- scripts/gen-claude-marketplace.rb: generates and validates the manifest
- CI step fails if marketplace.json drifts from the skill tree
- README: Claude Code install instructions

Closes #76

AI-assisted: yes (Jasper/Hermes Agent)
2026-07-21 02:17:35 -04:00
Magnus HedemarkandGitHub cc3170bea5 docs: add Codex install instructions to README (#75) 2026-07-21 01:59:11 -04:00
Magnus HedemarkandGitHub b5369c4681 docs: replace Hermes Agent install section with external_dirs and tap methods (#74) 2026-07-21 01:43:51 -04:00
Magnus HedemarkandGitHub 0e8bc26183 fix: pin release-please manifest to v0.3.0 (#72)
The manifest shipped at 0.2.2 in #71, but v0.3.0 already exists.
Without this, release-please will try to re-cut v0.3.0.
2026-07-21 01:28:32 -04:00
Magnus HedemarkandGitHub b4260e8d9c docs: remove per-skill cp -r install snippets from README catalog (#70)
The catalog entries don't need individual install commands — the
general 'Hermes Agent' section already explains how skills load.
Per-skill snippets are noise that has to be maintained for every
new skill.
2026-07-21 01:27:24 -04:00
79f84a88cd ci: add release-please for automated release PRs (#71)
Accumulates conventional commits into a Release PR that bumps the
version and updates CHANGELOG.md. Nothing is tagged until a human
merges the Release PR.

Co-authored-by: Jasper <jasper@magnus919.com>
2026-07-21 01:24:40 -04:00
Magnus HedemarkandGitHub c7c4d3b74f Port 11 methodology skills from hermes-profiles (#69)
Engineering: backend-engineering, frontend-engineering, data-engineering,
ml-engineering, platform-engineering, qa-methodology

Executive: go-to-market, legal-strategy, operational-design, org-design,
product-strategy

ml-engineering: added missing training-infrastructure.md reference
qa-methodology: added test-data-management, performance-testing,
security-testing references

All frontmatter converted to agent-skills convention.
Source: https://github.com/magnus919/hermes-profiles
2026-07-21 00:58:26 -04:00
Magnus HedemarkandGitHub 1552c4c624 Merge pull request #68 from magnus919/chore/remove-arr-skills
chore: move arr skills to private repository
2026-07-20 22:46:11 -04:00
Magnus Hedemark 2844f1a752 chore: move arr skills to private repository
Signed-off-by: Magnus Hedemark <magnus919@pm.me>
2026-07-20 22:44:28 -04:00
Magnus HedemarkandGitHub bd66202e06 fix: remove invalid Hermes skill metadata (#67) 2026-07-19 01:04:33 -04:00
Magnus HedemarkandGitHub 7c7b6cf23b feat(jellyfin-cli): expose read-only navigation (#66) 2026-07-18 00:41:55 -04:00
Magnus HedemarkandGitHub b0f1b892f4 fix(jellyfin-cli): harden current API contracts (#64) 2026-07-18 00:32:18 -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 HedemarkandGitHub ce0527e94c fix(verification-methodology): own accessible evidence collection (#60) 2026-07-17 16:11:27 -04:00
Magnus HedemarkandGitHub b5e0eec43f fix: classify Linear raw GraphQL mutations safely (#59)
Credentialed four-epoch SkillOpt validation. Exact-head independent review passed; validate check green.
2026-07-17 14:07:56 -04:00
Magnus HedemarkandGitHub 672f6190b0 Add focused Linear Agent Skill and CLI
Adds a dependency-free task-oriented Linear GraphQL CLI, progressive-disclosure guidance, offline safety tests, public-schema validation, and SkillOpt-derived help and promotion-gate improvements.
2026-07-17 13:07:24 -04:00
Magnus HedemarkandGitHub 089685cef2 docs(supabase): harden operational safety guidance (#57)
* docs(supabase): harden perimeter and recovery guidance

* docs(supabase): lock in operational safety patterns
2026-07-16 10:30:03 -04:00
Magnus HedemarkandGitHub fe252b3df6 feat(supabase): add expert Supabase skill
Authored and validated with Jasper (AI agent on behalf of Magnus Hedemark).
2026-07-16 01:32:32 -04:00
Magnus HedemarkandGitHub d01b8b5d73 feat: add Vercel Eve skill
Adds the public Vercel Eve Agent Skill, validated through three autonomous greenfield SkillOpt epochs and exact-head CI.\n\nAI-assisted contribution; binding self-review recorded on PR #55.
2026-07-16 00:40:12 -04:00
Magnus HedemarkandGitHub 4e7ab34fc9 docs: add ESP32 evidence gate (#54) 2026-07-15 23:51:08 -04:00
Magnus HedemarkandGitHub 36638256a8 feat: add portable ESP32 development skill (#53)
* feat: add portable ESP32 development skill

Add source-backed workflows, safe templates, native CLI routing, and a read-only preflight for ESP32 hardware and firmware work.\n\nAI assistance: research, drafting, implementation, and review used OpenAI Codex and delegated DeepSeek agents under human direction.

* docs: harden ESP32 family and security guidance

Add source-backed family traps, brownout, calibration, USB recovery, and security-mode boundaries found during independent review.\n\nAI assistance: independent audits and drafting used delegated DeepSeek agents and OpenAI Codex under human direction.
2026-07-15 21:45:53 -04:00
Magnus HedemarkandGitHub 47f7aa1ec5 feat(restic): add recovery-first operations skill (#51) 2026-07-15 19:32:49 -04:00
Magnus HedemarkandGitHub c64b3ce348 feat(skills): add Fireflies API skill and CLI (#49) 2026-07-15 17:19:10 -04:00
Magnus HedemarkandGitHub 082fd698e5 fix(research): require durable artifact preservation
Require durable, source-linked research artifacts and source-to-artifact preservation tracking.
2026-07-15 16:17:54 -04:00
Magnus HedemarkandGitHub 1b8c737653 fix(de-spin): gate publication on completed checks
Reviewed and validated. Adds authoritative table-mapping verification and blocks publication while delegated checks remain pending.
2026-07-15 15:31:22 -04:00
Magnus HedemarkandGitHub 7b0bd5e487 Merge pull request #46 from magnus919/feat/de-spin 2026-07-14 21:54:48 -04:00
Magnus Hedemark 9f7fe64ec1 fix(de-spin): require domain-constrained source discovery 2026-07-14 20:29:43 -04:00
Magnus Hedemark 9cc63258a4 fix(de-spin): preserve provenance and source-authenticity gaps 2026-07-14 19:54:42 -04:00
Magnus Hedemark 91b0093b6c feat(de-spin): add evidence-led claim audit skill 2026-07-14 19:16:25 -04:00
Magnus HedemarkandGitHub fab09329d7 Merge pull request #45 from magnus919/docs/remote-systems-os-references
docs(remote-systems): deepen OS and distribution references
2026-07-14 15:51:49 -04:00
Magnus Hedemark 6e95d0443a docs(remote-systems): deepen OS and distribution references 2026-07-14 15:45:25 -04:00
Magnus HedemarkandGitHub a4dca03f88 Merge pull request #43 from magnus919/docs/ansible-administration-reference
docs(remote-systems): add practical Ansible reference
2026-07-13 22:07:55 -04:00
Magnus Hedemark 6fb592f394 docs(remote-systems): add practical Ansible reference 2026-07-13 22:05:58 -04:00
Magnus HedemarkandGitHub bb5a7d0033 Merge pull request #40 from magnus919/feat/skillopt-remote-systems-administration
fix: SkillOpt remote systems administration hardening
2026-07-13 13:36:19 -04:00
Magnus Hedemark a4233784ef fix(remote-systems-administration): add evidence handoff gates 2026-07-13 13:35:50 -04:00
Magnus Hedemark 3b1b4df413 fix(remote-systems-administration): clarify control-plane decisions 2026-07-13 13:35:50 -04:00
Magnus Hedemark ebfc30e71d fix(remote-systems-administration): clarify read-only preflight 2026-07-13 13:35:50 -04:00