Skip to content

feat(contrib): contributor docs + repo-wide prose pass + intake templates#105

Merged
brettdavies merged 8 commits into
devfrom
chore/site-prose-pass-and-contrib-docs
May 21, 2026
Merged

feat(contrib): contributor docs + repo-wide prose pass + intake templates#105
brettdavies merged 8 commits into
devfrom
chore/site-prose-pass-and-contrib-docs

Conversation

@brettdavies
Copy link
Copy Markdown
Owner

Summary

Combines the contributor-docs work that opened this branch with the repo-wide prose pass and a few correctness fixes that surfaced during the pass. Four logical commits: dual-binary framing fix, repo-wide prose pass plus ARCHITECTURE rename, generate-pack-readme default fix, expanded issue intake templates.

Changelog

Added

  • Contributor intake: CONTRIBUTING.md, /contribute site page, and expanded .github/ISSUE_TEMPLATE/ routing for Signal, Proposal, and Code tiers across the spec, linter, site, and skill repos. A blank-issue template covers cases the structured forms don't fit.

Changed

  • /install page title now reads "Install anc" to match the only compiled binary. Dual-binary framing dropped from /install and /check (the brew formula and Cargo.toml produce a single binary named anc; the crate name agentnative and the brew formula name agentnative install the same binary).

Fixed

  • scripts/generate-pack-readme.mjs DEFAULT_PACKS corrected from ["brand", "spec"] to ["brand", "site"]. The previous default was a vendor-from-spec leftover that made the bare invocation exit 1 trying to read non-existent styles/spec/.

Documentation

  • ARCHITECTURE.md renamed to RELEASES-RATIONALE.md to reflect its role as the WHY companion to RELEASES.md (the runbook). Cross-references in scripts/smoke-api-score.sh and tests/wrangler-config.test.ts follow the rename.
  • Repo-wide Vale plus LanguageTool plus unslop pass across 21 in-scope markdown files: em-dash density reduced via per-occurrence judgment (293 unslop findings to 34, all documented per-occurrence leaves), write-good and proselint signal warnings addressed where they were real improvements, Vale spelling vocab extended (Crowdsourced).

Type of Change

  • feat: New feature (non-breaking change which adds functionality)
  • fix: Bug fix (non-breaking change which fixes an issue)
  • docs: Documentation update
  • BREAKING CHANGE: Breaking API change (requires major version bump)

Related Issues/Stories

  • Story: n/a
  • Issue: n/a
  • Architecture: RELEASES-RATIONALE.md (renamed from ARCHITECTURE.md in this PR)
  • Related PRs: n/a

Testing

  • Unit tests added/updated
  • Manual testing completed
  • All tests passing

Test Summary:

  • bash scripts/prose-check.sh: 0 blocking, 1296 warning (down from 1 blocking, 1314 warning at branch start). Remaining warnings are LT typography misfires on markdown tables (whitespace, arrows) that the script deliberately keeps non-blocking.
  • ~/.claude/skills/unslop/scripts/score.py across all 24 in-scope files: 21 files at score 0; 3 files retain documented per-occurrence leaves (/check score 6, /intro score 7, PR template score 4) where a single em-dash carries real contrast and removing it would weaken the prose.
  • node scripts/generate-pack-readme.mjs --check: passes on bare invocation.
  • tests/wrangler-config.test.ts updated for the RELEASES-RATIONALE.md rename; assertion still grep-matches the canonical scores/{binary}/{anc-version}.json key prefix.

Files Modified

Modified:

  • .github/ISSUE_TEMPLATE/config.yml, .github/pull_request_template.md
  • BRAND.md, CONTRIBUTING.md, DESIGN.md, PRODUCT.md, README.md, RELEASES.md
  • content/_intro.md, content/about.md, content/badge.md, content/check.md, content/contribute.md, content/install.md, content/methodology.md, content/scorecard-schema.md
  • docker/sandbox/README.md, docker/score/README.md
  • docs/runbooks/live-scoring-analytics.md, docs/runbooks/live-scoring-monitoring.md
  • scripts/SYNCS.md, scripts/generate-pack-readme.mjs, scripts/smoke-api-score.sh
  • styles/brand/{FillerAdjectives,HedgeWords,MarketingRegister}.yml, styles/brand/README.md
  • styles/site/{BannedAesthetics,BannedFonts}.yml, styles/site/README.md
  • styles/config/vocabularies/site/accept.txt (added Crowdsourced)
  • tests/wrangler-config.test.ts

Created:

  • .github/ISSUE_TEMPLATE/00-blank.yml

Renamed:

  • ARCHITECTURE.md to RELEASES-RATIONALE.md (91% similarity; same content with prose-pass edits applied)

Deleted:

  • None

Key Features

  • Contributor intake routes every contribution shape (Signal, Proposal, Code) to the correct one of four repos via .github/ISSUE_TEMPLATE/config.yml. Tier-3 includes a new tool-registry intake on the linter side and a skill-bundle intake on the skill side.
  • Generator-script defaults match this repo's actual pack layout, so the pre-push drift check works without explicit pack arguments.

Benefits

  • Install copy matches reality. Users following /install or /check no longer believe two binaries ship when one does, and the page title names the binary they'll actually invoke.
  • Em-dash density across consumer-facing surfaces (README.md, content/*.md, BRAND.md, PRODUCT.md, DESIGN.md) drops to clean unslop scores while preserving em-dashes that carry real emphasis or contrast.
  • Issue intake removes the "where does this belong?" friction; contributors land on the right repo's structured form on first click.

Breaking Changes

  • No breaking changes

ARCHITECTURE.md is renamed but no public anchor was published; the file was already a contributor-facing rationale doc. Internal cross-references in this repo are updated. External links to ARCHITECTURE.md (if any) would 404.

Deployment Notes

  • No special deployment steps required

No build artifact changes. The docs-only deploy filter in paths-ignore already covers root *.md changes so wrangler will produce a bit-identical Worker.

Screenshots/Recordings

n/a (no rendered-output changes).

Checklist

  • Code follows project conventions and style guidelines
  • Commit messages follow Conventional Commits
  • Self-review of code completed
  • Tests added/updated and passing
  • No new warnings or errors introduced
  • Changes are backward compatible (or breaking changes documented)

Additional Context

The four-commit shape on this branch will land as a single squash commit on dev; the PR title above is what survives.

Cross-repo audit finding (not fixed in this PR): the same DEFAULT_PACKS vendor-leftover bug exists in agentnative-cli/scripts/generate-pack-readme.mjs (should be ["brand"] there; only brand is a custom pack in that repo). agentnative-skill has no styles/ dir, so it is not affected.

Replaces the Tailscale magic-DNS hostname `pool.tail42ba87.ts.net:8081`
with the generic `languagetool:8081` in the LANGUAGETOOL_URL default
(scripts/prose-check.sh) and the matching prose-scrub example
(RELEASES.md), plus a stale comment in scripts/hooks/pre-push.

The Tailscale hostname identifies a private network host and should
not live in committed artifacts. Consumers set LANGUAGETOOL_URL
explicitly via env when their LT instance is elsewhere; the generic
default is just a docs-readable placeholder.
Two contributor entry points land together:

content/contribute.md renders as the visitor-facing /contribute page
on anc.dev. Walks visitors through the three contribution tiers
(pressure-test, propose alternative, code/docs PR), explains the
cross-repo navigation across spec / site / CLI / skill, and sets
honest response-time expectations for the solo-maintainer model.

CONTRIBUTING.md is the GitHub-surfaced repo file that contributors
land on when they click "Contributing guidelines" on the issue or PR
form. Mirrors the same tier framing but scoped to the site repo
specifically (rendered spec, leaderboard, live-scoring loop,
scorecard pages, badge surface, skill-distribution endpoint).
The /check and /install copy claimed `anc` and `agentnative` were two aliases for the same binary. The brew formula and Cargo.toml confirm only `bin/"anc"` ships; the `agentnative` crate produces a single binary named `anc`. Strip the dual-binary prose; keep the package-manager commands (`cargo install agentnative`, `brew install ... agentnative`), which install the same `anc` binary.

Install page title becomes `# Install anc` to match the binary the reader actually invokes.
…md to RELEASES-RATIONALE.md

Em-dash density reduction (per-occurrence judgment per unslop SKILL.md, no bucket substitution), write-good/proselint signal fixes, and Vale spelling vocab additions across 21 in-scope markdown files. Final state: 0 blocking, unslop score 0 across the set with 34 documented per-occurrence leaves (structural list-item labels, single em-dashes carrying real contrast, quoted-source text).

Styles YAML rule pack sources (`brand/*.yml`, `site/*.yml`) standardized on a single colon move for `# Source:` lines and parallel `message:` strings, then `styles/{brand,site}/README.md` regenerated via `scripts/generate-pack-readme.mjs` so the pre-push drift check stays green.

ARCHITECTURE.md renamed to RELEASES-RATIONALE.md to communicate the file's actual role: the WHY behind RELEASES.md (the runbook is its companion, not its standalone reference). Cross-references in `scripts/smoke-api-score.sh` header comment and `tests/wrangler-config.test.ts` describe-block + path constant updated to match.
The script was vendored from agentnative-spec where `styles/{brand,spec}/` is the canonical pack layout. This repo has `styles/{brand,site}/`, so the bare invocation `node scripts/generate-pack-readme.mjs` failed trying to read non-existent `styles/spec/`. Update DEFAULT_PACKS to `["brand", "site"]` and the usage header. Bare drift-check (`--check`) now passes.

Same defect audited in sibling repos: present in agentnative-cli (custom pack is `brand` only there; fix is `["brand"]`), absent in agentnative-skill (no styles/ dir, no script).
Pair with the /contribute site page and CONTRIBUTING.md added earlier on this branch. Expands `.github/ISSUE_TEMPLATE/config.yml` to route Tier-3 tool-registry submissions to the linter repo and adds an entry for the skill bundle. Adds a blank issue template for cases that don't fit any structured template.
CONTRIBUTING.md L106 and RELEASES.md L245 exceeded the 120-char limit after the rename touched their cross-references. Author-side line wraps applied; rendered output unchanged.
… anc`

Regression #6 asserted the install page started with `# Install agentnative`. The page title was renamed in the dual-binary-framing fix earlier on this branch; the assertion now matches the new title.
@brettdavies brettdavies merged commit 9850273 into dev May 21, 2026
3 checks passed
@brettdavies brettdavies deleted the chore/site-prose-pass-and-contrib-docs branch May 21, 2026 05:19
brettdavies added a commit that referenced this pull request May 21, 2026
## Summary

Exposes the two unreachable pages, fixes a build-registration bug that
was silently 404ing `/contribute`, adds a four-repo Source row to the
footer, and corrects a markdown formatting bug plus three near-dead deep
links on the contributor page.

## Changelog

### Added

- Nav exposes the `/skill` page (skill-bundle install) and the
`/contribute` page; the header now carries eight plain-text items in
reading order: Leaderboard, Install, Check your CLI, Skill, Methodology,
Coverage, About, Contribute.
- Footer Source row links the four canonical repos (`spec`, `cli`,
`site`, `skill`) under a quiet GitHub icon kicker. Inline SVG matches
the `currentColor` treatment of the existing AI-summary icons so theme
switches and dark mode work without extra CSS.

### Fixed

- `/contribute` was building no HTML or markdown twin because the
content file shipped without a corresponding entry in
`src/build/build.mjs` `subPages`. The route silently 404'd on the live
worker. Adding the entry restores the page and adds it to
`dist/sitemap.xml`.
- `/contribute` bullet for `Add a tool to the registry` rendered with an
orphan `-` and a stray paragraph below it. The link URL is long enough
that the auto-format hook (`textwrap.fill` with
`break_long_words=False`) couldn't keep bullet marker and link on the
same 120-character line. Switched to a reference-style link so the
inline bullet stays short.
- Three `/contribute` references to `principles/AGENTS.md §
Pressure-test protocol` linked to the top of the upstream file rather
than the named section. All three now deep-link to
`#pressure-test-protocol` so visitors land on the protocol prose (which
also carries the `draft → under-review → active → locked` status-flip
rules at lines 98 to 117).
- `.site-nav` was breaking words inside a single link on narrow
viewports (e.g. `Check your CLI` stacking as `Check` / `your` / `CLI`).
Adding `flex-wrap: wrap` plus `white-space: nowrap` on the links fixes
both the immediate eight-item layout and the pre-existing six-item bug.

## Type of Change

- [x] `feat`: New feature (non-breaking change which adds functionality)
- [x] `fix`: Bug fix (non-breaking change which fixes an issue)
- [ ] `BREAKING CHANGE`: Breaking API change (requires major version
bump)

## Related Issues/Stories

- Story: n/a
- Issue: n/a
- Architecture: n/a
- Related PRs: builds on #105 (which added `content/contribute.md` and
`CONTRIBUTING.md`)

## Testing

- [x] Unit tests added/updated
- [x] Manual testing completed
- [x] All tests passing

**Test Summary:**

- `bun test`: 736 pass, 0 fail (no test changes; existing assertions
still hold).
- `bun run lint`: 0 errors across biome and markdownlint.
- `node scripts/generate-pack-readme.mjs --check`: passes (no `styles/`
content changed).
- Local browse via `bunx wrangler dev --env staging --local --port
8787`: visually verified header (8 items, light + dark, 480px narrow
viewport wraps cleanly without intra-link breaks), footer Source row
(GitHub icon kicker plus four repo links rendered between AI-summary
block and meta line), and both newly-routed pages (`/skill` title
`Install agent-native-cli`, `/contribute` title `Contribute`).
- Build output: `dist/contribute.html`, `dist/contribute.md`, and a
`<url>/contribute` entry in `dist/sitemap.xml` are all produced where
the previous build emitted nothing.

## Files Modified

**Modified:**

- `src/build/build.mjs`: added `{ name: 'contribute', path: ... }` to
the `subPages` array.
- `src/build/sitemap.mjs`: added `/contribute` to the canonical paths
list.
- `src/build/shell.mjs`: added `Skill` and `Contribute` nav items, a
`GITHUB_SVG` constant (Simple Icons mark), a `SOURCE_REPOS` list of four
canonical repos, and the footer Source row markup.
- `src/styles/site.css`: added `flex-wrap` and `gap` to `.site-nav` plus
`white-space: nowrap` on `.site-nav a`; added `.site-footer__source`
rules for the new row.
- `content/contribute.md`: reference-style link for
`add-tool-to-registry` template, three deep-link anchors on
`principles/AGENTS.md` references.

**Created:**

- None

**Renamed:**

- None

**Deleted:**

- None

## Key Features

- Header nav exposes every page that ships on the site; `/skill` and
`/contribute` no longer require an out-of-band URL.
- Footer Source row makes the four-repo architecture visible without
requiring the visitor to read About or guess the org URL.

## Benefits

- Visitors can reach every shipped page from any page; previously
`/skill` was reachable only via the homepage's "Install
agent-native-cli" CTA copy and `/contribute` was unreachable entirely.
- The Source row sets the expectation that the standard lives across
four repos (spec, cli, site, skill), which prepares visitors for the
cross-repo pressure-test mechanism described on `/contribute`.
- The nav-wrap fix removes a layout bug that affected every viewport
narrower than the longest nav item.

## Breaking Changes

- [x] No breaking changes

No anchor changes, no removed routes. `/contribute` going from 404 to
200 is a Worker-observable change but not a user-facing breakage (404
was the bug; 200 is the fix).

## Deployment Notes

- [x] No special deployment steps required

The `paths-ignore` filter does not skip changes to `src/build/` or
`src/styles/`, so a normal `dev → staging` worker deploy ships the
build.

## Screenshots/Recordings

n/a in this body. Visual verification covered in Testing above;
screenshots reviewed locally under `bunx wrangler dev --env staging
--local --port 8787`.

## Checklist

- [x] Code follows project conventions and style guidelines
- [x] Commit messages follow [Conventional
Commits](https://www.conventionalcommits.org/)
- [x] Self-review of code completed
- [x] Tests added/updated and passing
- [x] No new warnings or errors introduced
- [x] Changes are backward compatible (or breaking changes documented)

## Additional Context

Two `/contribute` intake URLs are known to 404 on the live web and were
left as-is per direct instruction during review:

- `agentnative-cli/issues/new?template=add-tool-to-registry.yml`
(template file exists locally in the cli working tree as untracked,
never committed, never pushed).
- `agentnative/issues/new?template=grading-finding.yml` (template exists
on `agentnative` `origin/dev` per PR #30 but not yet on `origin/main`;
GitHub serves issue templates from the default branch).

Both will resolve once their respective upstreams land. No site-side
workaround was added.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant