v0.8.0 — Triggers frontmatter, language-agnostic code-map, churn-stable doc-sync #46
mvoutov
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
v0.8.0 — Triggers frontmatter, language-agnostic code-map, churn-stable doc-sync
This is a substantial release. Three things are worth knowing about up front, then a longer list below.
Headline changes
1. Skill triggers moved to YAML frontmatter. Activation rules (file globs, keywords,
alwaysActivate) now live in skill frontmatter under atriggers:key instead of a free-form## Activationsection. The activation hook reads frontmatter first; existing## Activationsections still work via a back-compat fallback so you don't need to migrate by hand. New skills generated byaspens doc init/doc syncemit the frontmatter form.2.
code-map.mdis now language-agnostic and churn-stable. Previously this file shuffled on every sync (file counts, edge counts, hub rankings, hotspot churn numbers, "+N more" suffixes — all changing constantly). v0.8.0 removes the noise and restores Domain clusters (cluster name + top files) for any language, not just Next.js repos. Sync diffs stop being dominated by code-map churn.3. AGENTS.md no longer drops unchanged skills on partial
doc sync. When only one skill changed, the codex transform was rebuilding AGENTS.md's Skills section from the in-flight subset and silently dropping every other skill. Fixed.Upgrade
Existing
## Activationsections continue to work — no forced migration.What else is in here
page,layout,route,loading,error,not-found,template,default,global-error), Pages Router, and special top-level files (middleware,instrumentation) surface as Framework entry points incode-map.md.src/lib/parsers/for richer extraction (re-exports, barrels), pluspath-resolver.jsfortsconfig.jsonalias resolution withextendschain support.isNoOpDiff()classifier —doc syncskips the LLM call entirely on lockfile-only or non-code-bearing diffs.sanitizePublishedContent()chokepoint — every disk write goes through it; strips forbidden blocks from skill files while preserving them incode-map.md.syncSkillsSectionis now idempotent — fresh inserts no longer push prose underneath the Skills heading where the next sync would eat it..cjs/.mjsextension parity — full graph coverage for CommonJS-heavy and ESM-explicit repos.resolveAliasImport()— a craftedtsconfig.jsonwithpaths: { "@/*": ["../../../outside/*"] }no longer creates out-of-repo graph nodes.Plus a handful of smaller fixes:
CLAUDE.md-mentioning lines no longer silently dropped from AGENTS.md, Pages Router walker no longer recurses into.next//.vercel/, broken symlinks in.claude/no longer crashaspens customize agents, and the no-op sync path runsscanRepoonce instead of twice.Test suite grew from ~360 to 439.
Full changelog: https://github.com/aspenkit/aspens/blob/main/CHANGELOG.md
Release: https://github.com/aspenkit/aspens/releases/tag/v0.8.0
All reactions