Repository navigation
docs: add CONTRIBUTING.md covering AI policy and nightlies - #205
Merged
Merged
Conversation
The repository had no contributor guide, and no written statement of what we expect from a contribution written with a coding agent. It also had no home for the local development workflow: `docs-npx-cli` is an error-level rule with a `raw` scope, so it reaches inside fenced code blocks and cannot be suppressed in-file, which makes it impossible for a README to name `pnpm cli` at all. That is correct for a README, read by people without this repository checked out, and it leaves nowhere to document the local scripts. CONTRIBUTING.md sits outside every Vale scope, so the rules stay strict everywhere they apply and the contributor guide can still name the commands a contributor actually runs. The header says so, to stop a later change from "fixing" it by adding a scope. The nightly section moves here from the README, which keeps a pointer.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Stack (root → tip):
The repository had no contributor guide, and no written statement of what we expect from a contribution written with a coding agent.
Why the file is Vale-exempt, deliberately
docs-npx-cliis an error-level rule withscope: [raw, code, text], so it reaches inside fenced code blocks and rewritespnpm clitonpx @taskless/cli. Its own config records that there is no escape hatch: under arawscope Vale evaluates against unparsed markup, so<!-- vale off -->and per-rule directives are both ignored (measured on Vale 3.18.0).That is the right rule for a README, which is read by people who do not have this repository checked out. It also makes a contributor guide impossible to write, because a contributor guide has to name the local scripts.
Every Vale rule here is scoped by path (
[**/README.md],[CLAUDE.md],[.conventions/*.md],[packages/cli/src/agent/*.txt],[packages/cli/src/**/*.ts]) and there is no catch-all, soCONTRIBUTING.mdis already outside all of them. The rules stay strict everywhere they apply. The file's header says this, so a later change does not "fix" it by adding a scope.Verified rather than assumed. With a probe line containing an em dash and the word
simplyappended toCONTRIBUTING.md,checkreported zero findings from it, while the identical word inpackages/cli/src/agent/onboard.txtstill fired. Thepnpm clialready in the document did not tripdocs-npx-clieither. Probe removed before commit.Contents
Using AI to contribute — you own what your agent does; you are expected to be able to explain what it does; we are not running an attestation system today and are open to exploring one. Nothing asks a contributor to disclose agent use: the standard is the same either way.
Local development — the build/typecheck/lint/test loop,
pnpm cli, and why a staledist/serves stale recipes.Nightlies — moved from the README, plus a
Testing against a nightlysection that installs into a scratch project rather than globally, avoiding the binary collision. Two gotchas that previously lived only in workflow comments: a nightly bakes its own invocation into everything it ships, and agents in this repository cannot run one because.claude/settings.jsondeniesBash(npx:*)andBash(pnpm dlx @taskless/cli*).Pull requests and code style — short, pointing at
CLAUDE.mdand.conventions/rather than duplicating them.README
Keeps a pointer: what a nightly is, the install line, the binary-collision warning, then a link here. The edited README still passes Vale despite being in scope.
Notes
skip-changeset.devtarget and will land with it.