## Summary - add repository-wide quality tooling and verification scaffolding, including CI workflows, pnpm workspace setup, ESLint/Prettier/markdown checks, and generated-output verification helpers - reorganize skill sources and generation flow by introducing canonical `_source` variants, generator/manifests, reusable helper abstractions, and shared web-automation/browser utilities - clean up and expand documentation so the root README flows into docs and skill docs, with clearer development, reviewer, installer, and workflow guidance ## Notable changes - docs flow and consistency cleanup across `README.md`, `docs/README.md`, and related docs - new scripts for `check`, docs verification, generated-file verification, shell portability, and safe directory replacement - refactors in Atlassian and web-automation skill runtimes to reduce duplication and centralize reusable code - changelog, development documentation, and CI surface updates ## Test Plan - [ ] `pnpm run check` - [ ] review generated/manifests and skill sync outputs - [ ] smoke-check docs flow from `README.md` to `docs/README.md` to skill docs ## Notes - this branch currently includes tracked `skills/web-automation/shared/node_modules` content that should be reviewed carefully as potentially noisy/accidental committed artifacts Co-authored-by: Stefano Fiorini <stefano.fiorini@firsthorizon.com> Reviewed-on: #1
8.4 KiB
Changelog — ai-coding-skills
All notable changes to the ai-coding-skills repository are recorded here. Entries are milestone-scoped; stories within each milestone are listed for traceability.
M5 — Final hardening, CI surface, and documentation closeout
What changed in M5
S-501 — CI workflow added
.github/workflows/check.yml runs on every push and pull request against a
matrix of ubuntu-latest and macos-latest. Each job:
- Installs
shellcheck(apt on Ubuntu, brew on macOS). - Installs
ripgrep(apt on Ubuntu; pre-installed on macOS runners). - Installs Node.js 22 and pnpm 10.
- Runs
pnpm install --frozen-lockfile. - Runs
pnpm run check(full quality suite, offline link-checking).
.github/workflows/check-online.yml runs verify:docs:online on a weekly
schedule (Monday 09:00 UTC) and on manual workflow_dispatch. This keeps
external link checking out of the push/PR critical path.
S-502 — Root README contributing section
README.md now includes a "Contributing / Development" section that names
pnpm run check as the single quality gate, lists prerequisites, and links
to docs/DEVELOPMENT.md.
S-503 — docs/DEVELOPMENT.md finalised
Added:
- "Adding a new agent variant" recipe (6 steps from canonical source to CI).
- "Adding a new skill" recipe (6 steps).
- "CI" section describing both workflows and how to add new prerequisites.
- Permanent
checkcontract replacing the transitional M1 wording. - Cross-reference links to
.github/workflows/check.ymland.github/workflows/check-online.yml.
S-504 — Baseline report closed
docs/CLEANUP-BASELINE.md updated with a "Final state" section showing every
baseline failure resolved, a baseline status summary table, and the
post-M5 pnpm run check output. The document is now closed.
S-505 — package.json file list synced
docs/DEVELOPMENT.md and docs/REVIEWERS.md added to the files array.
All listed entries verified to exist in the post-M5 tree.
S-506 — Changelog extended (this entry)
S-507 — Final green run confirmed
pnpm run check exits 0 on macOS 15 (arm64) with Node 22.14.0 and
pnpm 10.18.1. CI workflow exercises the same gate on both ubuntu-latest
and macos-latest.
pnpm run check status after M5
PASS lint
PASS typecheck
PASS test
PASS verify:pi
PASS verify:reviewers
PASS verify:docs
PASS verify:generated
All checks green. CI enforces this on every push and PR.
M4 — Shared-abstraction extraction and dead-code removal
See docs/CLEANUP-BASELINE.md § "Post-M4 state" for the full M4 delta.
M3 — Shared-source generator for agent variants
Package metadata change ⚠️
All generated agent-variant package.json files have been renamed to unique
private scoped names. This is an intentional breaking rename in the artifact
structure, but all packages carry "private": true and are never published
to any registry. End-user manual-install workflows are unaffected: copying a
skills/<skill>/<agent>/ directory continues to work unchanged.
Old name |
New name |
Path |
|---|---|---|
atlassian-skill-scripts |
@ai-coding-skills/atlassian-claude-code |
skills/atlassian/claude-code/scripts/package.json |
atlassian-skill-scripts |
@ai-coding-skills/atlassian-codex |
skills/atlassian/codex/scripts/package.json |
atlassian-skill-scripts |
@ai-coding-skills/atlassian-cursor |
skills/atlassian/cursor/scripts/package.json |
atlassian-skill-scripts |
@ai-coding-skills/atlassian-opencode |
skills/atlassian/opencode/scripts/package.json |
atlassian-skill-scripts |
@ai-coding-skills/atlassian-pi |
skills/atlassian/pi/scripts/package.json |
atlassian-skill-scripts |
@ai-coding-skills/atlassian-pi-mirror |
pi-package/skills/atlassian/scripts/package.json |
web-automation-scripts |
@ai-coding-skills/web-automation-claude-code |
skills/web-automation/claude-code/scripts/package.json |
web-automation-scripts |
@ai-coding-skills/web-automation-codex |
skills/web-automation/codex/scripts/package.json |
web-automation-scripts |
@ai-coding-skills/web-automation-cursor |
skills/web-automation/cursor/scripts/package.json |
web-automation-scripts |
@ai-coding-skills/web-automation-opencode |
skills/web-automation/opencode/scripts/package.json |
web-automation-scripts |
@ai-coding-skills/web-automation-pi |
skills/web-automation/pi/scripts/package.json |
web-automation-scripts |
@ai-coding-skills/web-automation-pi-mirror |
pi-package/skills/web-automation/scripts/package.json |
All renamed packages also gained "private": true.
What else changed in M3
S-301 — Canonical sources documented
Canonical source directories introduced (all outside every generated root):
skills/atlassian/_source/<agent>/SKILL.md— per-agent Atlassian skill descriptionsskills/web-automation/_source/<agent>/SKILL.md— per-agent Web Automation skill descriptionsskills/web-automation/shared/— shared web-automation TypeScript runtime scriptsskills/create-plan/_source/<agent>/— per-agent create-plan SKILL.md + templatesskills/do-task/_source/<agent>/— per-agent do-task SKILL.md + templatesskills/implement-plan/_source/<agent>/— per-agent implement-plan SKILL.mdskills/reviewer-runtime/(base) — canonicalrun-review.shandnotify-telegram.sh
S-302 — Generator built
scripts/generate-skills.mjs regenerates all 31 generated roots from canonical
sources in one pass. Exports detectFileType, applyHeader,
makePackageJsonContent, getGeneratedRoots, buildManifest, and
generateSkills. 35 unit tests.
S-303 — Manual-workflow skills migrated
create-plan, do-task, implement-plan agent variants now generated from
_source/ canonical sources. Only diffs vs pre-migration: file-type-aware
headers and new .generated-manifest.json files.
S-304 — Web-automation runtime scripts migrated
skills/web-automation/shared/ created from the former codex canonical source.
All five web-automation agent variants and the pi-package mirror now generated
from this shared location.
S-305 — Reviewer-runtime Pi variants migrated
skills/reviewer-runtime/pi/run-review.sh and notify-telegram.sh are now
generated from the canonical base scripts. The "keep this file in sync"
comments are replaced by generated-file headers.
S-306 — sync:pi and verify:generated implemented
pnpm run sync:pinow callsnode scripts/generate-skills.mjs.scripts/verify-generated.mjsimplements the full comparison contract: walks declared roots only, uses.generated-manifest.jsonas oracle, reports structured diffs, exits non-zero on any mismatch. 5 unit tests including the required_source/stray-file boundary test.pnpm run verify:generatedwired to the real implementation.
S-307 — Workspace updated
pnpm-workspace.yaml updated to include all generated agent-variant
packages (now uniquely named) alongside the canonical sources. The M1
negative-glob exclusions are replaced by positive includes.
S-308 — Documentation updated
docs/DEVELOPMENT.md: new "How variants are generated" section with canonical source table, generated-root list, contributor workflow, header policy table, and manifest contract.CHANGELOG.md(this file): full rename table and story summaries.
Byte-equivalence diff allow-list (M3 vs pre-M3 generated roots)
The only permitted diffs between the M3-generated output and the pre-M3 manually-maintained variants are:
- File-type-aware generated-file headers — added per the policy table in
docs/DEVELOPMENT.md. - New
.generated-manifest.jsonfiles — one per generated root. package.jsonnamefield — renamed to@ai-coding-skills/<skill>-<agent>."private": trueadded — to each generatedpackage.json.
No other content diffs are permitted; verify:generated and the generator
itself reject any other change.
pnpm run check status after M3
PASS lint (was FAIL; all pre-existing violations fixed)
PASS typecheck
PASS test
PASS verify:pi
PASS verify:reviewers
PASS verify:docs
PASS verify:generated (was stub; now real implementation)
All checks green for the first time.
Previous milestones (M1, M2) did not have a CHANGELOG.md entry. See
docs/CLEANUP-BASELINE.md for the M1 baseline and M2 delta.