Coding policy for Viktor Gamov's AI agents: language-agnostic quality rules, autonomous shipping discipline, and stack defaults for JVM, Swift, TypeScript, and Python
78
98%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Low
Low-risk findings worth noting
Coding policy plugin for Viktor Gamov's AI agents. Language-agnostic code quality rules, autonomous shipping discipline, stack defaults for JVM, Swift, TypeScript, and Python, plus the hooks, reviewer, and release workflow that enforce them.
A fork-in-spirit of jbaruch/coding-policy: the code rules, the ship-on-green stance, the session hooks, and the Codex policy reviewer are ported; the multi-agent team layer and the fleet publishing pipeline are not. See CHANGELOG.md for what was kept, dropped, and added.
tessl install gamussa/coding-policyTo wire a repository fully (plugin at latest, per-repo Codex policy reviewer, Copilot lane, .tessl/ hygiene), run the onboard-repo skill from that repository. See docs/consumer-setup.md.
| Category | Rule | Summary |
|---|---|---|
| Git | commit-conventions | Imperative mood, one change per commit, PR hygiene, no AI attribution trailers |
| Git | sync-before-work | Fetch and sync the local checkout to the remote default before reading, planning, or editing |
| Testing | testing-standards | Outcome-based, deterministic, no binary fixtures; per-stack test conventions |
| Errors | error-handling | Specific exceptions, shell set -euo pipefail, actionable messages, structured logging |
| Deps | dependency-management | Stdlib first, pinned versions with a renewal mechanism, lock files, no vendoring |
| Files | file-hygiene | Proper .gitignore, no generated files, entry-point guards, idempotent scripts |
| CI | ci-safety | Never skip tests, never smuggle CI edits, always watch CI to a terminal state |
| Secrets | no-secrets | No credentials in code; env vars or a secrets manager; .env.example |
| Style | code-formatting | Use the project's formatter; stack defaults when none exists; no style-plus-logic commits |
| Types | language-diagnostics | Enable the language engine, never silence a finding without cause, gate CI at zero |
| Discipline | boy-scout | Leave it better than you found it; "pre-existing" is not a concept |
| Discipline | ship-on-green | Green gate is the approval; asking is deciding not to ship; three objective exits only |
| Discipline | verify-before-done | "Done" means a shown passing run; "should work" is not a state |
| Discipline | environment-changes | State a machine-level install or a new dependency before making it |
| Communication | response-clarity | Action first, numbered steps, plain errors, one next step, no preamble |
| Concurrency | agent-worktree-isolation | Git worktrees for concurrent agent work; cleanup; read-only exception |
| Review | review-severity | Blocking gates the merge, advisory never does; Copilot is always advisory |
| Review | reviewer-feedback-reading | Read every reviewer's body before declaring merge-ready, COMMENTED included |
| Scope | external-repo-contributions | Default deny on issues, PRs, comments, and reactions in repos the operator does not own |
| Automation | hook-action-reporting | Relay Session-start status — hook payloads once, then act on what they name |
| Demos | demo-readiness | Talk and workshop repos run from a fresh clone with one command and a documented reset |
| Authoring | script-delegation | Deterministic work goes in scripts, reasoning stays in the LLM; skills cite a script's contract |
| Authoring | skill-authoring | SKILL.md structure, flat step numbering, typed Skill() calls, manifest reference |
| Authoring | context-artifacts | Plugin structure, rule format and frontmatter, writing style, surface sync, manual versioning |
| Skill | Description |
|---|---|
| release | Ship a branch: readiness checks, PR, Codex policy review plus advisory Copilot review, watch to a verdict, address feedback, merge on green, cleanup, and publish confirmation for plugin repos. |
| onboard-repo | Bootstrap a consumer repo: install the plugin at latest, gitignore .tessl/, scaffold the per-repo Codex reviewer workflow and Copilot instructions, set CODEX_AUTH_JSON, open the PR. |
| Hook | Event | Description |
|---|---|---|
| check-policy-freshness | SessionStart | Warns (throttled once a day) when installed Tessl plugins are behind the registry. Informative only. |
| check-git-sync | SessionStart | Fetches origin (throttled once an hour per repo) and warns when the local default branch is behind or diverged. Informative only. |
| check-tessl-latest | SessionStart | Warns when tessl.json pins a gamussa/* dependency instead of latest. Informative only. |
| stop-handoff-hygiene | Stop (Claude Code + Codex) | Blocks the handoff once on leftover merged branches, orphaned worktrees, or shellcheck/pyright findings in the changed set. A dirty tree is reported, not blocked. |
alwaysApply: true; rules that only fire in specific files declare applyTo: so the agent narrows when to act.bash scripts/run-diagnostics.sh # shellcheck + pyright at zero findings
bash scripts/run-tests.sh # every **/tests/test_*.sh suite
tessl plugin lint # manifest and structureEvery PR that changes shipped content bumps version in .tessl-plugin/plugin.json and adds a ## <version> — <date> heading to CHANGELOG.md; scripts/check-version-bump.sh enforces it in CI. Merging to main publishes that version.
.tessl-plugin
hooks
rules
skills