project-etiquette
Skill5 starsChanged 23 days agoApache-2.0View on GitHub
Default ship discipline for any serious project — blast radius first, then fix, test, update code/docs, build, commit, wait for CI, publish only if green. Use when the user says ship, release, finish, or "test everything then update/build/commit/CI/PyPI".
In this repository9 other files it gives its agents.
- change-safetySkill
- gauntlet-securitySkill
- memory-backupSkill
- refactor-safeSkill
- self-dev-loopSkill
- self-injectSkill
- soak-productSkill
- stress-suiteSkill
- webui-paritySkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
15 rules. About 0 are common, 12 are distinctive, and 3 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈12
Distinctive · estimate
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 40
Prefer durable architecture over patch loops for known failure classes.
- Distinctive: line 45
Prefer small, verifiable steps.
- Very specific: line 53
Run the full suite when the user asked for “everything”.
- Distinctive: line 55
Add or update tests when behavior changed.
- Very specific: line 63
Commit as docs: on the current version.
- Distinctive: line 65
Keep assets/config consistent with the change.
- Distinctive: line 71
Run any docs sync/check scripts the project provides.
- Distinctive: line 94
Do not push a guess. No publish while red.
- Distinctive: line 105
After a ship sequence, summarize with a short table:
- Distinctive: line 117
If blocked, state which gate and the smallest next action.
- Distinctive: line 132
Read README / CONTRIBUTING / AGENTS.md / CI workflow.
- Distinctive: line 134
Prefer project scripts over inventing one-off publish paths.
- Distinctive: line 135
Keep a change-safety checklist for this repo’s fragile zones.
- Very specific: line 141
Use when cwd is the RemedyAI tree (or user says “this project”).
- Distinctive: line 161
When developing Remedy itself (self-inject + gauntlet + soak + stress), activate
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Project etiquette (ship sequence)
Why this exists
Shipping is a pipeline of gates, not a single “push and hope.”
The same sequence works for almost any project (Python, Node, Rust, monorepos):
Blast radius → Fix → Test → Update project → Update docs → Build → Commit → CI green → Publish
Skip a gate only when the user explicitly says so (e.g. “docs later”, “no publish”).
When to use
- User asks to finish / ship / release a change.
- Phrases like: “test everything, if it passes update everything, build, commit to CI, if it passes publish to PyPI.”
- Multi-hour builds where you must not leave the tree half-shipped.
Portable gate chain
Execute in order. After any failure, stop advancement until that gate is green.
0. Blast radius (before large edits)
- Activate change-safety (
skill_activate(name=change-safety)) when available. - Name the surface, list coupled neighbors, plan paired checks + manual smoke for UI/chrome/messengers that unit tests miss.
- Prefer durable architecture over patch loops for known failure classes.
1. Fix / implement
- Complete the requested behavior.
- Prefer small, verifiable steps; keep the tree runnable.
- Note risks (migrations, breaking APIs, signing, secrets).
2. Test (hard gate)
- Discover how this repo tests (pytest, npm test, cargo test,
make check, …). - Open
.github/workflows/(or equivalent) and run those commands locally before push. Pytest-only is not CI. - Run the full suite when the user asked for “everything”; otherwise run the subset that covers the change plus the project CI lint/type/docs steps.
- Add or update tests when behavior changed.
- Do not commit known-failing tests unless the user wants a WIP commit.
- Do not push until the local CI commands are green.
3. Update the project
- Bump version only when shipping a real release (semver: patch for fixes, minor for features).
- Do not bump version for docs-only fixes (manuals, What's new catch-up, README typos, help sync).
Commit as
docs:on the current version; users get the notes on the next real release or from git/F1 after rebuild. - Align version surfaces if the repo has more than one (package.json, Cargo.toml, …) when you do bump.
- Keep assets/config consistent with the change.
4. Update documentation
- User-visible change → CHANGELOG / release notes / help docs.
- Developer-facing change → README / architecture notes as the repo expects.
- Run any docs sync/check scripts the project provides.
- Docs should describe what the user does, not only internal renames.
- Docs-only → no version bump / PyPI / release tag unless the user explicitly asks.
5. Build
- Produce what CI/release expects (wheels, bundles, desktop artifacts).
- A green unit suite with a broken package build is not done.
6. Commit
- Stage only intentional files (no secrets, no local noise).
- Message: complete sentences; conventional prefix when it fits
(
fix:,feat:,docs:,release:). - One logical theme per commit when practical.
- Note
Risk:/Smoke:when fragile zones were involved.
7. Push and wait for CI
- Push to the integration branch the project uses (
main/master) only after the local CI commands are green. - Wait for remote CI to finish. Report the run URL when available.
- Red CI → run the failed step locally, fix until it is green, then push. Do not push a guess. No publish while red.
8. Publish (only if asked and CI is green)
- Tag release if the project uses tags for installers/changelogs.
- Publish packages (PyPI, npm, crates.io, …) only with existing credentials and project conventions.
- Confirm the published version is reachable (e.g. PyPI JSON,
npm view).
Response format (report back to the user)
After a ship sequence, summarize with a short table:
| Gate | Result |
| Blast radius | surfaces + smokes run |
| Tests | pass / fail (+ command) |
| Docs | updated / n/a |
| Build | pass / fail |
| Commit | hash + subject |
| CI | green / red + URL |
| Publish | version + registry / skipped |
If blocked, state which gate and the smallest next action.
Anti-patterns
- “It works on my machine” without running the project’s test command.
- Pushing after pytest-only when CI also runs ruff / mypy / docs.
- Pushing a CI-fix commit without re-running the failed CI step locally.
- Committing version bumps without changelog/docs.
- Publishing before CI finishes (or ignoring a red run).
- Force-pushing shared mainline branches.
- Leaving half a release without telling the user.
- Treating green CI as proof that title bar / live bots / WebView embeds work.
Adapting to a new repo
- Read README / CONTRIBUTING / AGENTS.md / CI workflow.
- Map each gate to local commands (record them in the session brief if long-lived).
- Prefer project scripts over inventing one-off publish paths.
- Keep a change-safety checklist for this repo’s fragile zones.
RemedyAI appendix (this monorepo)
Use when cwd is the RemedyAI tree (or user says “this project”).
| Gate | Remedy command / note |
| Blast radius | Root AGENTS.md Change-safety protocol; skill change-safety |
| Test (Python) | Full Windows + Linux uv run pytest -q --tb=short; never a hand-picked stale file list |
| Test (desktop) | cd desktop && npm test && npm run build; cd src-tauri && cargo test --locked && cargo check --locked |
| Test (native/mobile) | Go test + race + vet + boundaries + benchmark budgets; Zig debug + ReleaseSafe tests/build; Android unit + lint + debug/release APK |
| Local CI (before every push) | Run the complete current matrix in root AGENTS.md, including docs/import/static checks and uv build. A first or follow-up push is forbidden while any local gate is red. After red remote CI, re-run the failed step locally before pushing again. |
| Docs | Manuals in docs/manual/; uv run python scripts/sync_help_manual.py; gate uv run python scripts/check_docs.py |
| Version | uv run python scripts/sync_version.py {X.Y.Z} |
| Build wheel | uv build → dist/remedy_ai-{ver}* |
| Commit | Push master only after local CI is green |
| CI | GitHub Actions workflow CI on that commit — wait for success |
| Publish PyPI | After CI green: uv publish dist/remedy_ai-{ver}.* (token via env / ~/.pypirc) |
| Desktop installer | Tag v{X.Y.Z} → desktop-release; asset must be Remedy.Desktop_{X.Y.Z}_x64-setup.exe (see root AGENTS.md) |
Also respect root AGENTS.md (installer naming, version surfaces, smoke matrix).
For end-of-session continuity use skill session-handoff.
When developing Remedy itself (self-inject + gauntlet + soak + stress), activate
self-dev-loop first — it sequences self-inject, gauntlet-security,
soak-product, stress-suite, and this ship chain.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

