agentleFS
AhmiDarrowAhmiDarrow/RemedyAI/skills/project-etiquette/SKILL.md

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".

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
  1. Distinctive:

    Prefer durable architecture over patch loops for known failure classes.

    line 40
  2. Distinctive:

    Prefer small, verifiable steps.

    line 45
  3. Very specific:

    Run the full suite when the user asked for “everything”.

    line 53
  4. Distinctive:

    Add or update tests when behavior changed.

    line 55
  5. Very specific:

    Commit as docs: on the current version.

    line 63
  6. Distinctive:

    Keep assets/config consistent with the change.

    line 65
  7. Distinctive:

    Run any docs sync/check scripts the project provides.

    line 71
  8. Distinctive:

    Do not push a guess. No publish while red.

    line 94
  9. Distinctive:

    After a ship sequence, summarize with a short table:

    line 105
  10. Distinctive:

    If blocked, state which gate and the smallest next action.

    line 117
  11. Distinctive:

    Read README / CONTRIBUTING / AGENTS.md / CI workflow.

    line 132
  12. Distinctive:

    Prefer project scripts over inventing one-off publish paths.

    line 134
  13. Distinctive:

    Keep a change-safety checklist for this repo’s fragile zones.

    line 135
  14. Very specific:

    Use when cwd is the RemedyAI tree (or user says “this project”).

    line 141
  15. Distinctive:

    When developing Remedy itself (self-inject + gauntlet + soak + stress), activate

    line 161

≈ “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.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

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:

GateResult
Blast radiussurfaces + smokes run
Testspass / fail (+ command)
Docsupdated / n/a
Buildpass / fail
Commithash + subject
CIgreen / red + URL
Publishversion + 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

  1. Read README / CONTRIBUTING / AGENTS.md / CI workflow.
  2. Map each gate to local commands (record them in the session brief if long-lived).
  3. Prefer project scripts over inventing one-off publish paths.
  4. 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”).

GateRemedy command / note
Blast radiusRoot 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.
DocsManuals in docs/manual/; uv run python scripts/sync_help_manual.py; gate uv run python scripts/check_docs.py
Versionuv run python scripts/sync_version.py {X.Y.Z}
Build wheeluv build → dist/remedy_ai-{ver}*
CommitPush master only after local CI is green
CIGitHub Actions workflow CI on that commit — wait for success
Publish PyPIAfter CI green: uv publish dist/remedy_ai-{ver}.* (token via env / ~/.pypirc)
Desktop installerTag 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.

Download now (ZIP)

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
What did you use it for? e.g. Reviewing pull requests in a Rails app

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.