177 Commits
Author SHA1 Message Date
Magnus HedemarkandGitHub d0edebbeab Revise README for clarity and project details
Updated the README to improve clarity and detail about the project.
2026-09-10 18:29:05 -04:00
Magnus HedemarkandGitHub def688dc1e feat: add gap-analysis methodology skill (#475)
* feat: add gap-analysis methodology skill

Signed-off-by: Magnus Hedemark <magnus919@pm.me>

* fix: satisfy gap-analysis trigger validation

Signed-off-by: Magnus Hedemark <magnus919@pm.me>

* chore: refresh generated marketplace metadata

Signed-off-by: Magnus Hedemark <magnus919@pm.me>

* chore: refresh llms catalog

Signed-off-by: Magnus Hedemark <magnus919@pm.me>

---------

Signed-off-by: Magnus Hedemark <magnus919@pm.me>
2026-09-07 01:17:47 -04:00
Magnus HedemarkandGitHub 2a458aba10 feat: add technical program management skill
Merge research-grounded technical program management skill with routing, templates, evals, and repository validation.
2026-09-05 17:39:54 -04:00
Magnus HedemarkandGitHub 22d141de75 feat: add research-grounded technical project management skill (#468)
* feat: add research-grounded technical project management skill

* test: retain isolated project coordination regression evidence
2026-09-04 23:56:40 -04:00
Magnus HedemarkandGitHub 3d54d7b68b feat: add analog occultism aesthetic skill
Closes #466
2026-09-04 23:36:48 -04:00
Magnus HedemarkandGitHub 37acf4968a fix(validation): align README and core test filtering
Align README runtime requirements and local core-test filtering with required CI semantics.\n\nCo-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
2026-09-01 22:37:34 -04:00
Magnus HedemarkandGitHub 6ac1d166f7 fix(validation): add explicit catalog JSON selector (#451)
Add a focused regression covering default and explicit JSON output, document final repository validation commands, and include the catalog test in the shared core selection.\n\nCo-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
2026-09-01 21:58:43 -04:00
Magnus HedemarkandGitHub befe2e26fc feat(skills): add React and Vite tool expertise
Squash-merge verified React and Vite expertise at exact head d4fd6cf70d. Required validate and paired evaluation checks passed; advisory droid review had no blocking findings.
2026-09-01 20:05:58 -04:00
Magnus HedemarkandGitHub 02d6189135 feat: add FFmpeg expert skill
Adds a source-grounded FFmpeg command-line skill with focused references, a capability preflight, and six output-quality eval cases. Closes #426.
2026-09-01 08:33:26 -04:00
Magnus Hedemark 8d6e0407e0 Merge remote-tracking branch 'origin/main' into feat/verified-delivery-self-resumption 2026-08-31 00:08:40 -04:00
Magnus HedemarkandGitHub e0301e6f89 Merge branch 'main' into feat/issue-407-thicken-cli-skills 2026-08-30 04:32:26 -04:00
Magnus Hedemarkandfactory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com> a31381bd37 docs(tempest): thicken weather station skill against current API research
Full skill-builder rebuild of tempest per issue #407:

- references/: four dense files replacing the single layouts crib sheet -
  rest-api-and-auth.md (personal-use token via tempestwx.com Settings ->
  Data Authorizations, token-as-query-parameter auth, StationSet wrapper,
  device_type HB/AR/SK/ST enum, observation parameters day_offset vs
  time_start/time_end, better_forecast unit-selection, error signatures),
  udp-broadcast-protocol.md (port 50222 listen-only broadcast, dispatch-
  by-type rule, obs_st 18-position UDP record, rapid_wind ob, evt_precip/
  evt_strike, hub_status/device_status named fields), observation-layouts-
  and-units.md (REST 22-position obs_st vs UDP 18, obs_air 8, obs_sky 17
  vs 14, daily obs_*_ext summaries, metric-native unit tables), and cli-
  worked-recipes.md (six executable pipelines). Every file ends with a
  Sources footer citing live-verified official docs (apidocs.tempestwx.com,
  weatherflow.github.io/Tempest).
- scripts/tempest: fixed researched bugs - rapid_wind handler iterated the
  single ob array element-wise (TypeError on real datagrams), hub_status
  printed undocumented freq field, forecast human display double-converted
  Fahrenheit stations (units_temp=f is documented and honored), SK/AR
  device types now matched alongside SKY/AIR, StationSet unwrap handles
  stations/locations/bare-list shapes, missing ~/.tempest.env fallback
  implemented as documented, dry-run stations plan, handler-owns-flags
  dispatch. Added decode_message()/handle_datagram() type-dispatch layer
  covering all seven UDP message families.
- scripts/test_tempest.py: 42 offline tests (pytest + unittest green,
  proxy-trap clean) - canned UDP datagram bytes fed to the decoder with no
  sockets, mocked REST transport, help/arg-error/dry-run classes, and the
  documented pipelines (stations->current, obs day totals, forecast units).
- SKILL.md: lastfm-model rewrite (275 lines) - Setup, intent-grouped
  commands, UDP family dispatch table, pipeline recipes, jq guidance, ten
  grounded gotchas, when-to-use/when-not-to-use boundaries, reference
  routing table.
- README.md: human-format refresh with hub-on-LAN prerequisite.
- evals/evals.json: 8 schema-v1 cases incl. two negative probes
  (Shakespeare The Tempest, generic city forecast).
- Root README blurb and references/skill-triggers.md row synced to the new
  description; .claude-plugin/marketplace.json and llms.txt regenerated
  (both embed descriptions; check modes exit 0; codex artifact unaffected).

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
2026-08-29 23:04:37 -04:00
Magnus Hedemarkandfactory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com> 05b99be6ec docs(transistor): thicken podcast hosting skill against current API research
Full skill-builder rebuild of transistor per issue #407:

- scripts/transistor (renamed from transistor-cli): 19 commands covering the
  verified API surface - user probe (GET /v1; the /v1/user route does not
  exist), shows/episodes with corrected pagination[page]/pagination[per],
  the dedicated episode publish endpoint (PATCH /v1/episodes/:id/publish
  with episode[status]=draft|scheduled|published), authorize-upload flow,
  the three real analytics routes with downloads[] array summing,
  subscriber management incl. batch, and webhooks. Write bodies are
  form-encoded bracket keys exactly as documented; dry-run plans carry
  method/path/params/body; publish guard refuses audio-less episodes.
  Fixed stale claims: /analytics/show -> /v1/analytics/..., totals ->
  downloads arrays, pagination[limit] -> pagination[per], user email ->
  name/time_zone, dropped invented episodes_count/subscribers_count and
  POST /v1/shows (show creation is dashboard-only).
- scripts/test_transistor.py: 50 offline tests (pytest + unittest green,
  proxy-trap clean) covering help, argument errors, dry-run plans, canned
  JSON:API compound-document parsing (data/attributes/relationships/
  included[]), write-path body shapes, publish guard, create->audio->
  publish pipeline, and HTTP error signatures.
- references/: auth+JSON:API envelope with jq patterns, endpoint catalog,
  publish lifecycle with documented request/response shapes, gotchas
  field guide + worked recipes; all cited to live-verified sources.
- evals/evals.json: 8 schema-v1 cases incl. two should-not-trigger probes.
- SKILL.md rewritten (308 lines), README refreshed, root README blurb and
  generated catalogs synced (marketplace.json + llms.txt descriptions).

Publish-body shape reconciliation: the contract's data.id+data.type JSON:API
PATCH premise was falsified by current official docs (verified 2026-08-29)
and the flimzy/transistor Go SDK; implemented reality escalated in handoff
(see library/transistor-api-facts.md).

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
2026-08-29 22:02:23 -04:00
Magnus Hedemarkandfactory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com> 83e07b9ac2 docs(peertube): thicken federated video skill against current API research
Research-driven rebuild of the peertube skill (docs.joinpeertube.org REST
reference 8.1.0 + SepiaSearch + server source + live anonymous probes):

- SKILL.md rewritten to the lastfm model: intent-grouped commands, pipeline
  recipes, jq guidance, researched gotchas, When-to-use/When-not-to-use,
  reference routing table. New negative boundary in the description
  (YouTube/Vimeo uploads, video editing, server administration).
- scripts/peertube-cli -> scripts/peertube, rewritten and extended:
  offset (start/count) pagination replaces the nonexistent page param,
  comments fixed to the hyphenated /comment-threads route, server command
  now composes /config/about + /server/stats (canonical paths), search
  gains --search-target with searchTarget=local default and help text
  stating its instance-local scope, new video/comments/channel/account/
  my-videos/logout commands, --server hoisted before or after the
  subcommand, OAuth2 password grant hardened for 2FA (x-peertube-otp)
  and the production client_secret masking behavior, per-instance
  owner-only token file with refresh-before-expiry and revocation.
- references/: auth-and-tokens, search-and-discovery, endpoint-catalog,
  gotchas-field-guide, worked-recipes - all cited to official docs with
  Sources footers (URLs verified live at authoring time).
- scripts/test_peertube.py: 54 offline tests (help, argument errors,
  dry-run plans, mocked OAuth2 persistence/refresh/revocation, handler
  contracts, documented pipeline chains) passing pytest strict-markers,
  unittest discovery, and the proxy-trap zero-egress rerun; one
  env-guarded anonymous live probe (PEERTUBE_LIVE_TESTS=1).
- evals/evals.json: six schema-v1 cases incl. SepiaSearch-scope and
  masked-secret cases plus a should-not-trigger YouTube negative probe.
- README refreshed for humans; root README blurb and skill-triggers row
  synced; marketplace.json/llms.txt regenerated (codex artifacts
  unchanged); test-results/ gitignored (pytest runner artifact).

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
2026-08-29 18:43:00 -04:00
Magnus Hedemarkandfactory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com> bf1bba6fc6 chore(catalog): sync jellyfin blurb and regenerated catalogs
- Root README blurb and references/skill-triggers.md trigger row now
  match the thickened jellyfin description (manual-sync requirement).
- Regenerate .claude-plugin/marketplace.json and llms.txt via --write:
  both embed skill descriptions, so the rewrite staled them; check
  modes exit 0 again. Codex artifact unaffected (no descriptions).

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
2026-08-29 17:38:18 -04:00
Magnus Hedemark d7bd0953df feat: add verified delivery interruption recovery 2026-08-28 17:24:57 -04:00
Magnus HedemarkandGitHub 531ff67537 feat(seo): consolidate answer and generative search optimization
Merging with required validation green. Droid Auto Review was retried twice and failed before producing a review because DeepSeek V4 Flash rejected the action's ApplyPatch tool; the check is non-required per branch protection. The diff was independently inspected and local/repository validation passed.
2026-08-26 19:42:25 -04:00
Magnus Hedemarkandfactory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com> 1d95c4b020 chore(catalog): sync openlibrary blurbs and regenerate catalogs
Root README blurb and skill-triggers row updated to match the new frontmatter description; marketplace.json and llms.txt regenerated via gen-*.rb --write (codex/agents outputs unchanged). Check modes all green.

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
2026-08-26 08:44:48 -04:00
Magnus Hedemarkandfactory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com> af9ca0f41b chore(catalog): sync root README blurb and regenerate catalogs
Root README jira blurb now mentions count matches and the expanded JQL
reference set, matching the updated frontmatter description. Regenerated
.claude-plugin/marketplace.json and llms.txt (description embed).

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
2026-08-26 06:10:28 -04:00
Magnus Hedemarkandfactory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com> ff1dab9273 docs(skills): repair catalog cross-references after -cli renames
Update every audited reference site to the six renamed skills:
root README headings and links (and drop the jira-jql entry ahead of
its absorption), references/skill-triggers.md rows for jellyfin and
tempest plus four new-name rows for ghost/jira/openlibrary/tmdb,
scripts/grandfathered-skills.txt pruned to the three retained *-cli
entries, pyproject.toml deptry exclusion jellyfin-cli -> jellyfin,
neckbeard routing seams, cli-builder example names, and the lastfm /
verification-methodology eval texts mentioning jellyfin.

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
2026-08-26 02:13:56 -04:00
Magnus HedemarkandGitHub e10508b034 feat(bmad): add BMad control-plane protocol skill (#400)
* feat(bmad): add BMad control-plane protocol skill

New standalone methodology skill that lets any agent run the BMad method
(Breakthrough Method of Agile AI-Driven Development) as a harness-agnostic
control-plane protocol: five-field intent contracts, direct/bounded/initiative
classification, review-as-triage, failure routing by layer, and autonomy gating
with machine-readable spec status.

- SKILL.md protocol core with progressive disclosure + When not to use
- README.md human-facing install guide
- 9 references: protocol, classification, spec, lifecycle, project-context,
  review-and-failure-routing, autonomy, party-mode, adoption
- 4 templates: SPEC, INTENT, STORY, REVIEW
- scripts/check-spec.py + 16 tests (stdlib, deterministic spec validation)
- evals/evals.json: 9 output-quality cases
- Routing seams from bmad to adjacent skills and back from
  spec-driven-development, product-shaping, implementation-planning, neckbeard
- Catalog updates: root README, skill-triggers, marketplace/plugin/llms.txt

Closes #399

* fix(bmad): address droid-review findings

- check-spec.py: skip headings inside fenced/indented code blocks so a spec
  cannot PASS on section text that only appears in a code sample
- check-spec.py: catch UnicodeDecodeError on non-UTF-8 files and report FAIL
  instead of crashing
- STORY.md template: add created key for resumability/traceability parity
- SPEC.md template: split in-progress and in-review status bullets
- add 2 regression tests (heading-in-fence, non-UTF-8)

* fix(bmad): address droid-review round 2

- check-spec.py: read specs with utf-8-sig so a UTF-8 BOM cannot silently
  disable the frontmatter status check
- check-spec.py: handle standard YAML inline comments after status values
  (status: draft  # pending review) without a false FAIL
- references/protocol.md: make lifecycle phrasing consistent with
  lifecycle.md — four phases plus a learning closeout
- add 2 regression tests (BOM, inline comment)

* fix(bmad): tolerate trailing whitespace on frontmatter delimiters

A spec whose --- delimiter lines carry trailing spaces or tabs would silently
disable the status check and let an invalid status PASS. Relax the delimiter
pattern and add a regression test.

* fix(bmad): ignore inline comments in quoted status values

* fix(bmad): tolerate leading blank lines before frontmatter

* fix(bmad): fail closed on unparseable frontmatter, matching fence markers

Address droid-review round 5 and 6 findings as a single closed class:
- Fail closed when a file opens with a --- delimiter that cannot be parsed,
  so no whitespace/frontmatter permutation can silently disable the status
  check (previously: unparseable frontmatter was treated as 'no status'
  warning, letting an invalid status PASS).
- Track fence opener markers in collect_headings so a mismatched fence no
  longer closes a code block early (false-PASS on missing sections) and an
  unclosed fence no longer swallows real headings.
- Accept empty well-formed frontmatter (---\n---) and closing delimiters
  without a trailing newline.
- STORY.md template: parent-spec points at the sibling SPEC.md.
- README: status vocabulary is not a strict linear chain; blocked is a
  resumable routing signal.

Whitespace/frontmatter mutation sweep: 9 formatting variants x valid/invalid
status all verdict correctly; malformed delimiters fail closed. 29 tests.
2026-08-24 08:05:43 -04:00
Magnus Hedemark 673335d21a feat(product-shaping): add Shape Up adaptation skill for bounded product work
New class-level methodology skill adapted from Ryan Singer's Shape Up
(Basecamp, 2019), extended for human+AI-agent build teams:

- SKILL.md: core loop (shape -> bet -> build -> move on) with entry-point
  routing and negative trigger boundaries
- 6 references: principles, shaping (incl. non-UI work), betting, building,
  hybrid-adaptation, anti-patterns (independent field record 2019-2026)
- 2 templates: PITCH.md (five ingredients), SCOPE_MAP.md (hill states)
- evals: 6 output-quality cases incl. hybrid and routing regression cases

Routing surfaces: catalog README entry, skill-triggers index row,
product-methodology seam (consume won bets; no pre-bet shredding).
Generated artifacts regenerated against current main.

Closes #387
2026-08-23 00:45:30 -04:00
Magnus Hedemarkandfactory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com> 030e6dfd47 feat(skill): add LiteLLM AI gateway operations skill
Add litellm/, an operational tool skill for the LiteLLM AI gateway (proxy)
and Python SDK, in the same vein as the vllm and llama-cpp engine skills.

Contents:
- SKILL.md: operating contract, operating loop, verification boundaries,
  and hard boundaries; concise core sections routing depth to references
- README.md: human-facing install/use guide with required sections
- references/: nine dated, source-indexed references (source index,
  quickstart + SDK, config & routing, keys/teams/budgets/spend, caching &
  guardrails, observability & logging, deployment, security & public
  hosting, troubleshooting), researched against litellm 1.97.0
  (2026-08-22) including a live proxy probe of the health endpoints
- scripts/litellm-health: read-only GET-only probe (liveliness, readiness,
  /v1/models, /model/info); stdlib-only Python 3.9+, --json, --help
  without a server
- tests/test_litellm_health.py: 18 deterministic tests against a local
  stub HTTP server, including the observed-traffic GET-only contract
- templates/proxy-config-record.md and proxy-deployment.md: fillable
  records; the config record is the rollback unit
- evals/evals.json: schema_version 1, six output-quality cases

Also regenerates tracked catalog artifacts (.claude-plugin/marketplace.json,
.codex-plugin/plugin.json, llms.txt) and adds the root README catalog entry
plus the skill-triggers.md index row.

AI assistance: authored with AI assistance (Factory Droid) under human
direction; facts verified against litellm 1.97.0 and official docs dated
2026-08-22.

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
2026-08-22 15:31:16 -04:00
Magnus HedemarkandGitHub 94b7231147 feat: add AI operating economics skill (#368)
* feat: add AI operating economics skill

Add an evidence-led methodology for evaluating AI workflow value, cost, worker effects, quality guardrails, and authority expansion. Includes research references, durable decision templates, and six eval cases. AI assistance: Jasper, on behalf of Magnus Hedemark.

Signed-off-by: Magnus Hedemark <magnus919@pm.me>

* fix: resolve AI economics review findings

Align section numbering, evidence-language examples, and intervention-mode terminology identified by the exact-head review.

Signed-off-by: Magnus Hedemark <magnus919@pm.me>

---------

Signed-off-by: Magnus Hedemark <magnus919@pm.me>
2026-08-21 13:53:49 -04:00
Magnus HedemarkandGitHub 05e6a038d2 feat(capacity): add tenant demand and unit cost (#363)
Add distribution, skew, headroom, fairness, cost allocation, representative evidence, templates, evals, and specialist routing.\n\nAI-assisted: Jasper orchestrated implementation and verification with OpenCode.

Signed-off-by: Magnus Hedemark <magnus919@pm.me>
2026-08-21 05:01:58 -04:00
Magnus HedemarkandGitHub 79caa0bb25 feat(backend): add event and coexistence patterns (#361)
Add outbox/inbox implementation, idempotent message handling, migration coexistence seams, evals, and exact specialist routing.\n\nAI-assisted: Jasper orchestrated implementation and verification with OpenCode.

Signed-off-by: Magnus Hedemark <magnus919@pm.me>
2026-08-21 03:53:10 -04:00
Magnus HedemarkandGitHub 11381f89c3 feat: add multi-tenant SaaS architecture (#360)
Add tenant semantics, planes, tenancy models, lifecycle and commercial handoffs, operations, templates, evals, and specialist routing.\n\nAI-assisted: Jasper orchestrated implementation and verification with OpenCode.

Signed-off-by: Magnus Hedemark <magnus919@pm.me>
2026-08-21 03:13:16 -04:00
Magnus HedemarkandGitHub 8174e820e2 feat: add enterprise architecture methodology (#359)
Add capability and portfolio mapping, state transitions, operating models, decision rights, stakeholder information, templates, evals, and neighboring-owner routing.\n\nAI-assisted: Jasper orchestrated implementation and verification with OpenCode.

Signed-off-by: Magnus Hedemark <magnus919@pm.me>
2026-08-21 02:49:55 -04:00
Magnus HedemarkandGitHub 73a4250f74 feat: add software architecture methodology (#358)
Add system-level architecture design, tradeoff, distributed workflow, evolution, facilitation, template, eval, and adjacent-owner routing guidance.\n\nAI-assisted: Jasper orchestrated implementation and verification with OpenCode.

Signed-off-by: Magnus Hedemark <magnus919@pm.me>
2026-08-21 02:03:24 -04:00
Magnus HedemarkandGitHub cc70502f79 feat(radar): make architecture governance proportional (#357)
Replace board-centric defaults with consequence-driven governance modes, feedback loops, exceptions, and clear ownership boundaries.\n\nAI-assisted: Jasper orchestrated implementation and verification with OpenCode.

Signed-off-by: Magnus Hedemark <magnus919@pm.me>
2026-08-21 01:20:21 -04:00
Magnus HedemarkandGitHub db2ad850be feat(architecture): deepen codebase analysis (#355)
Add evidence lenses for characteristics, coupling, decomposition, data authority, workflows, health reporting, and eval coverage.\n\nAI-assisted: Jasper orchestrated implementation and verification with OpenCode.

Signed-off-by: Magnus Hedemark <magnus919@pm.me>
2026-08-21 00:09:03 -04:00
Magnus HedemarkandGitHub cc0274f392 feat(api): add landscape governance and topology (#354)
Add portfolio, lifecycle, topology, policy-placement, assessment, and eval guidance while preserving contract ownership boundaries.\n\nAI-assisted: Jasper orchestrated implementation and verification with OpenCode.

Signed-off-by: Magnus Hedemark <magnus919@pm.me>
2026-08-20 23:44:27 -04:00
Magnus HedemarkandGitHub fe9b268db7 feat(migration): add service extraction guidance (#353)
Add evidence-first extraction patterns, assessment templates, modular-monolith retention criteria, and eval coverage.\n\nAI-assisted: Jasper orchestrated implementation and verification with OpenCode.

Signed-off-by: Magnus Hedemark <magnus919@pm.me>
2026-08-20 23:24:06 -04:00
Magnus HedemarkandGitHub c990f0531c feat(skill): add actuarial risk modeling methodology (#332)
* feat(skill): add actuarial risk modeling methodology

* fix(skill): refresh generated catalogs
2026-08-20 16:20:48 -04:00
Magnus HedemarkandGitHub fe71295226 feat: add digital-twin skill (#326)
Signed-off-by: Magnus Hedemark <magnus919@pm.me>
2026-08-19 13:30:25 -04:00
Magnus HedemarkandGitHub b57fe513e8 feat: add dedicated AEO skill
Merge dedicated AEO skill with implementation references, templates, scripts, evals, and SEO routing.
2026-08-18 20:45:14 -04:00
Magnus HedemarkandGitHub dde5fa1020 feat: add data-cleaning skill bundle (#324)
Merge authorized after exact-head validation and paired evaluation checks passed. The follow-up Droid review run on head df31b25 stalled in the model step and ended with an automation error; its actionable findings from the prior review were fixed and independently verified.
2026-08-17 22:00:57 -04:00
Magnus HedemarkandGitHub b6a96eb22e feat: add ascii-city-engine skill (#321)
* feat: add ascii-city-engine skill

New skill teaching portable first-person colored-ASCII city engines and
small GIS-derived city packs:

- references/engine-architecture.md: terrain height function, ground-
  attached pedestrian physics (feet_z=terrain(x,y), step/slope limits,
  building-footprint collision with wall sliding), fisheye-corrected
  raycast-to-ASCII pipeline, glyph density ladder, deterministic color.
- references/city-provider-contract.md: manifest + world-tile semantics,
  single-height-per-column v1 limit, reserved surface-graph extension.
- references/gis-ingestion.md: USGS 3DEP/OSM/municipal source classes,
  meter-CRS reprojection, unit checks, 3.2 m/floor height fallback,
  provenance/confidence recording.
- references/raleigh-poc.md: numeric downtown bbox, named sources with
  URLs, acquire/convert/validate commands, 4 human acceptance checks.
- templates/: city-pack-manifest + world JSON Schemas.
- scripts/validate-city-pack.py: pure-stdlib offline validator (78 rules).
- assets/raleigh-downtown-sample/: committed coarse pack (30 real OSM
  buildings, 25 road/path surfaces, 78x64 10 m terrain) <= 64K.
- assets/ascii-city-engine.html: dependency-free Canvas 2D engine.
- evals/evals.json: 6 schema-valid cases incl. runtime-specificity and
  large-GIS-commit refusal boundaries.
- README.md catalog entry.

AI-assisted contribution (Hermes Agent, spec-driven-development pipeline).

* chore: regenerate claude marketplace for ascii-city-engine

* chore: regenerate codex plugin and llms.txt for ascii-city-engine

* fix(ascii-city-engine): address droid-review findings on PR #321

1. [P2] Engine scaffold now reads manifest.json for spawn + first tile
   instead of hardcoding (315,385) — restores pack interchangeability.
2. [P2] Validator all_points() guards isinstance(dict) so structurally
   invalid tiles report FAIL instead of crashing with AttributeError.
3. [P2] raleigh-poc acceptance walk: correct duration/elevation math
   (~25s/~100m to ~100.9m at (315,505); ~95s to north edge ~103.0m).
4. [P3] known-limitations: match committed data — 5/30 explicit OSM
   height (0.88), 25 floor-estimated (0.72), not ~26%/0.55/0.35.
5. [P3] bbox: document tangent-plane 632x779m vs normalized 630x770m
   working extent instead of asserting 630x770 as the conversion result.
6. [P3][security] cap polygon vertices (2000), elevation cells (4M),
   feature count to prevent O(n^2) CPU-exhaustion on crafted packs.

Verified: sample pack 79/79 PASS exit 0; broken fixture exit 1; droid
AttributeError repro now FAILs cleanly; 5000-vertex footprint rejected
in 58ms; node --check OK; validate-skills.rb 154 green; blocklist clean.
2026-08-15 21:13:11 -04:00
Magnus Hedemarkandfactory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com> 96721d647f feat(ai-governance): assemble SKILL.md router, README, evals, and repo integration
Add the trigger/router SKILL.md (description, you-own/don't-own table, router
tables accounting for every bundled file, When-not-to-use, neighbor routing), the
human-facing README, the schema-valid evals manifest with six output-quality cases,
the root README catalog entry, the skill-triggers row, and regenerated llms.txt plus
the three marketplace/plugin artifacts.

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
2026-08-14 20:47:04 -04:00
Magnus Hedemarkandfactory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com> 65fcae6cda docs(flatten): update repo docs for the flat layout
Rewrite README.md Installation prose and references/skill-triggers.md to
drop the bundles/ depth and --full-depth guidance, relabel the architecture
diagram bundle node, and correct bundle-manifest-design.md to place manifests
at <skill>/manifest.yaml with the 8-umbrella count. Fix the example manifest
and schema descriptions, plus the production-excellence AGENTS.md depth note.

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
2026-08-14 16:48:49 -04:00
Magnus Hedemarkandfactory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com> df713361c4 fix(flatten): point catalog validation and links at flat layout
Update validate-skills.rb expected_catalog_paths to the flat */SKILL.md
glob (drop the bundles/ term), repoint the 8 README catalog headings to
<name>/SKILL.md, and fix the promise-theory and semantic-spacetime
workflow-architect links to ../workflow-architect/SKILL.md.

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
2026-08-14 16:07:01 -04:00
Magnus Hedemarkandfactory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com> 2c78dfcca3 feat(semantic-spacetime): add format-compliant M1 skill core
Add the semantic-spacetime skill skeleton: a thin SKILL.md router with
triggers/anti-triggers, Load By Need, Quick Start, Related Skills, gotchas,
and exit conditions; a human-facing README; MIT license; deep
provenance-marked theory references (foundations, glossary, bibliography);
the versioned sst-model-v1 template pair; a 6-case schema-v1 eval manifest;
the root README catalog entry; regenerated marketplace and llms artifacts;
and the skill-triggers row.

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
2026-08-12 22:33:47 -04:00
Magnus Hedemarkandfactory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com> ffd05b2e1d feat(skill): promise-theory catalog integration
Add the promise-theory skill to the repository catalog: root README entry,
regenerated llms.txt and marketplace/plugin packaging, and a
references/skill-triggers.md row.

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
2026-08-11 23:41:52 -04:00
Magnus HedemarkGitHubfactory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
6fe5aed86e feat(skill): rename writing skill to writers-helper (#302)
Rename the skill directory to writers-helper and update the name field,
eval manifest skill_name, skill README title and example paths, root
README catalog entry, and the skill-triggers index. Regenerate llms.txt,
.claude-plugin/marketplace.json, .codex-plugin/plugin.json, and
.agents/plugins/marketplace.json from their generators. Content is
unchanged.

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
2026-08-08 13:06:46 -04:00
Magnus HedemarkGitHubfactory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
ecdfc658c1 feat(skill): add writing skill for the full writing lifecycle (#301)
Add writing/, a comprehensive writer's personal skill distilled from a
44-book writing-craft and publishing library. Ships 10 expert references
(planning and research, craft and structure, prose and style, drafting,
editing and revision, blocks and prompts, habits and lifestyle,
publishing and career, genres and formats, pitfalls and solutions),
13 fill-in templates (premise canvas through book proposal, query
letter, and submission log), and 5 Python helper scripts (position-aware
prompt generator, session planner, manuscript stats analyzer, habit
journal, submission tracker). All content is original paraphrase and
synthesis; no copyrighted source material is reproduced.

Add the catalog entry at its sorted position and regenerate llms.txt,
.claude-plugin/marketplace.json, .codex-plugin/plugin.json, and
.agents/plugins/marketplace.json from their generators.

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
2026-08-08 12:53:55 -04:00
Magnus HedemarkGitHubfactory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
9a42be585e feat(skill): add genius-life creativity practice skill (#299)
* feat(skill): add genius-life core skill files

Add genius-life/SKILL.md and the six references/ files (creative-process,
practice-mode, development-mode, practices-catalog, evidence-basis,
scope-and-safety) as original synthesis from the mission research library,
with copyright-compliant paraphrase, named-fellow attribution, and honest
framing. Templates, README, evals, and catalog integration ship in later
features.

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>

* feat(skill): add genius-life templates, README, and evals

Add six fillable worksheets (talent audit, session plan, project
worksheet, conditions audit, incubation log, risk and failure review),
a human-facing README with the repository's required sections, and a
12-case eval manifest covering both modes and the required boundary
behaviors.

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>

* feat(skill): add genius-life to catalog and regenerate artifacts

Add the genius-life README catalog entry at its sorted position and
regenerate llms.txt, .claude-plugin/marketplace.json, .codex-plugin/plugin.json,
and .agents/plugins/marketplace.json from their generators.

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>

---------

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
2026-08-08 01:31:20 -04:00
Magnus HedemarkandGitHub c44685800e feat: add personalized travel-guide skill
Add the personalized travel dossier skill, its portable evaluation cases, rendering and privacy helpers, tests, and synchronized discovery catalogs.

Authored by Jasper (AI agent on behalf of Magnus Hedemark).
2026-08-07 23:34:19 -04:00
Magnus HedemarkGitHubfactory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
f37dc73829 feat(skill): add anydoc — office documents to GitHub-Flavored Markdown (#295)
* feat(skill): add anydoc core content and references

Add the anydoc skill content tree: SKILL.md (progressive-disclosure index
with frontmatter per ALLOWED_FIELDS), human-facing README, the five reference
files (formats, cli-reference, errors, workflows, sources), 24 committed
fixtures (valid + error cases), and a fixture-grounded eval manifest with 8
cases. Every documented behavior, exit code, and error message was verified
against the real pinned CLI (npx -y @firecrawl/anydoc@0.1.6); verbatim --help
and error transcripts are reproduced character-for-character.

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>

* feat(skill): add anydoc wrapper script and unit tests

Implements scripts/anydoc, a stdlib-only Python wrapper around the pinned
@firecrawl/anydoc@0.1.6 CLI: convert/batch/info subcommands, global
--json/--dry-run, input and output pre-validation, friendly hints for the
no-OCR/encrypted/malformed/unsupported error classes, Node >= 20 and npx
availability checks, deterministic batch output naming with documented
duplicate/collision behavior, and exit codes 0/1/2. Adds offline unittest
suite (46 tests, real-CLI tests skip when npx is unavailable) and keeps the
wrapper contract documented in cli-reference.md and errors.md.

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>

* feat(skill): ratchet anydoc evals to 14 grounded cases

Verify the pre-authored 8-case manifest and extend it with six
high-signal cases (PDF lower-fidelity pipeline, legacy .ppt table
flattening, ODP same-serializer, RTF, EPUB, CSV header promotion),
each grounded in real pinned-CLI runs against the committed fixtures.

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>

* feat(skill): integrate anydoc into repo catalog and artifacts

Add the sorted anydoc catalog entry to README.md (between agent-skills
and api-design-and-evolution), regenerate the tracked catalog artifacts
(.claude-plugin/marketplace.json, .codex-plugin/plugin.json,
.agents/plugins/marketplace.json, llms.txt) with the ruby generators,
and add a routing note to documents/SKILL.md pointing office-document
to-markdown conversion at the anydoc skill.

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>

* fix(skill): polish anydoc wrapper timeout, JSON shape, and docs

- run_cli raises CliTimeoutError on the 120s timeout; convert/batch with
  --json now emit one parseable JSON error envelope (error_class "timeout")
  on stdout before exiting, so --json always yields exactly one JSON doc
- batch JSON failure entries (pre-validation and CLI) now carry error_class
  ("io" for missing/dir inputs, mapped classes for CLI failures), so all
  batch failure entries share the same shape
- build_cli_command places -o/-f before the -- separator for dash-leading
  filenames, so `convert -f csv -- -weird` converts instead of misparsing
  ("unexpected second input"); absolute-path inputs unchanged
- workflows.md vault-ingestion recipe globs notes/* instead of docs/* and
  warns to run from a temp/vault dir, never touching repo-root docs/
- unit tests: +6 (timeout envelope x4, batch error_class shape,
  dash-leading filename); suite grows 46 -> 52

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>

---------

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
2026-08-06 20:11:19 -04:00
Magnus HedemarkandGitHub a4db8e7d43 Add forward-deployed-engineering bundle (#292)
* feat: add forward deployed engineering bundle

* fix: close FDE bundle review findings
2026-08-06 00:37:47 -04:00
Magnus HedemarkGitHubfactory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
d346970bf8 feat(skill): add dsm5 — evidence-based companion to the DSM-5-TR (#276)
Adds the dsm5 skill: an evidence-based conversational expert grounded in
the DSM-5-TR (American Psychiatric Association, 2022) for clinicians,
practitioners, patients, and family members.

- SKILL.md: safety-first conversation workflow (triage -> clarify ->
  route -> compare criteria -> differentials -> calibrated conclusion),
  reference routing table, crisis protocol, audience adaptation
- references/: 28 files — foundation (00-02), all 22 DSM-5-TR diagnostic
  classes (10-31), Part III measures/culture/AMPD/conditions-for-further-
  study (32-33), and cross-cutting differentials (40). Criteria are
  paraphrased with exact counts, durations, specifiers, and ICD-10-CM
  codes, plus per-disorder clinician and patient/family conversation
  guides
- scripts/lookup.py: stdlib keyword search across the reference library
  (--json/--list/--max/-q)
- evals/evals.json: 9 output-quality cases (schema v1)
- README.md: human-facing overview, install notes, and APA attribution
- Catalog entries and generated artifacts (llms.txt, marketplace
  plugins) regenerated; all repo validators pass

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
2026-08-04 21:30:11 -04:00