Agent skill

Codetrial Conventions

by sysprog21 in sysprog21/codetrial

The CodeTrial conventions the gate does not settle on its own, several of them enforced by the git hooks instead - the register a comment, a commit message, an issue or PR title and a PR reply are…

MITAuto-check passedDevelopment

Install Codetrial Conventions

skills CLI
$ npx skills add sysprog21/codetrial --skill codetrial-conventions -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install sysprog21/codetrial codetrial-conventions --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/sysprog21/codetrial.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/codetrial-conventions .claude/skills/codetrial-conventions && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
codetrial-conventions
GitHub stars
149
Token cost
~2.3k tokens
SKILL.md length
1,287 words
Files
1
Skills in repo
4
Repo updated
First seen
Licence
MIT

At a glance

The CodeTrial conventions the gate does not settle on its own, several of them enforced by the git hooks instead - the register a comment, a commit message, an issue or PR title and a PR reply are…

  • Drafting a commit message
  • SKILL.md covers Commit messages, Prose register, Comments and Working docs at the repo root, plus 6 more sections
  • Calls git, cargo and make
  • Choosing an issue

What it does

Codetrial Conventions is an agent skill from sysprog21/codetrial. The CodeTrial conventions the gate does not settle on its own, several of them enforced by the git hooks instead - the register a comment, a commit message, an issue or PR title and a PR reply are written in, what stays out of a public issue or PR, the untracked working docs at the repo root, where multi-byte characters are allowed and where they are not, deleting a redundant surface instead of deprecating it, the contracts in docs/ that refuse a change, and the repository layout. Use when drafting a commit…

Its SKILL.md is about 2.3k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Development, covering Commit messages and Pull requests. It works with Git. The repository describes itself as: A live technical interview simulator. The licence is MIT.

When your agent uses it

  • Drafting a commit message
  • Choosing an issue
  • Pushing a branch to open a pull request from
  • A public surface

Example prompts

  • “/codetrial-conventions”

Requirements

  • Python 3

What it can do on your machine

Read from SKILL.md and the folder at commit a77b0db. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • git
    • cargo
    • make

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use git, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Codetrial Conventions loads about 2.3k tokens when it runs. Until then it costs about 214 tokens; SKILL.md has 1,287 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~214
When it runs · the whole SKILL.md, loaded when a task matches
~2.3k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from sysprog21/codetrial at commit a77b0db, republished under its MIT licence (© sysprog21). 1,287 words, ~2,321 tokens.

Download SKILL.mdSave it as .claude/skills/codetrial-conventions/SKILL.md (or your agent's skills folder).
name
codetrial-conventions
description
The CodeTrial conventions the gate does not settle on its own, several of them enforced by the git hooks instead - the register a comment, a commit message, an issue or PR title and a PR reply are written in, what stays out of a public issue or PR, the untracked working docs at the repo root, where multi-byte characters are allowed and where they are not, deleting a redundant surface instead of deprecating it, the contracts in docs/ that refuse a change, and the repository layout. Use when drafting a commit message, choosing an issue or PR title, pushing a branch to open a pull request from, adding a file or a public surface, removing a flag or a subcommand, proposing a change to how an interview spends, caches, records or reports, drafting or editing any public issue, PR or comment, or writing a comment longer than a line.

CodeTrial conventions

The gate settles formatting and correctness. cargo fmt, Prettier, ESLint, ruff and shellcheck run in scripts/test.sh, so none of that is here. What is here is what a reviewer would otherwise have to say out loud, plus the rules the git hooks enforce, so an agent knows them before a hook refuses. Install them with make hooks.

Two tracked files carry the rest, and this one restates neither. README.md wins on what the project is and how it runs. CONTRIBUTING.md is the public half of the rules below, the commit message, the issue and pull request register, and the branch a pull request comes from, and it wins where the two disagree. Read it. What is left here is the agent's half: the calibration this tree's own log gives, which repository gh is pointed at, how drafted text reaches it, and what needs the user's approval first.

Commit messages

./scripts/git-commit-msg.sh --rules prints what the hook enforces, and CONTRIBUTING.md says what the body has to carry. Neither gives the calibration, so run this when a subject is hard to fit:

git log --no-merges --format=%s | awk '{print length}' | sort -n

Prose register

Markdown files are exempt from the ASCII rule and use ordinary GitHub Markdown, so a backtick belongs in docs/ and not in a commit subject.

Chinese, and CJK generally, stays out of src/, web/ and tests/ even when the conversation that produced the change was in Chinese. The product's surfaces are English. A test that genuinely needs multi-byte input to pin a character-boundary rule should use characters that read as a fixture rather than as prose in any language: Greek letters, accented Latin, an emoji. Say in the comment that the byte width is the point.

Comments

Every line of a comment says something the code cannot, and this tree carries long ones where the reasoning is long. Delete anything restating the statement below it.

  • Bad: let deadline = start + duration; // add the duration
  • Good: let deadline = start + duration; // truncated to whole minutes above, so the page and the interviewer end at the same number

Never point a comment, a docstring or a docs/ page at TODO.md. It is untracked and per-developer, so the reference dangles for everyone else. Code may name the path where it genuinely reads the file, and a runtime diagnostic may print it so the reader can navigate.

Working docs at the repo root

TODO.md, DONE.md and CLAUDE.md are excluded through .git/info/exclude, not through .gitignore, because the exclusion is one person's habit and .gitignore would push it onto everybody. Never git add, stage, commit or delete them, and never assume a clone has them. Reports and analyses stay out of the tree the same way: a scratch directory, not a new tracked file.

Contracts that refuse a change

CONTRIBUTING.md names the owning documents and the rule that a document refusing your change is the answer rather than an oversight. Two things it does not say.

Never restate one of these rules from memory or from this file: a paraphrase drifts, and the document is what binds.

And what being refused looks like. "Persist the finished session and regenerate the report later" reads as an obvious improvement, and the caching rule in docs/provider-cost-and-degradation.md refuses it. The move is to propose changing that document on purpose, with the reason, or to leave it alone.

Deleting a surface

In CONTRIBUTING.md, together with the compatibility promise it answers to.

GitHub issues and pull requests

CONTRIBUTING.md has the register, the titles, the bodies, the redaction rule and the branch rules. What follows is only what an agent needs on top of them.

Conversation may use the contributor's language; everything posted to GitHub is clear English, with identifiers and error messages kept verbatim. The target is sysprog21/codetrial; pass --repo sysprog21/codetrial to gh, because on a fork or a copy the checkout's default resolves elsewhere.

A vulnerability report goes to the user to hand to a maintainer, never into a public issue. A public thread may carry a request for a private contact and nothing else.

Nothing is written to GitHub until the user has approved the exact text, by saying yes to it or by dictating it and asking for it to be posted. The approval covers the writes shown. Approving a PR submission also covers later fix pushes to that branch and the review replies gh-submit makes while getting its checks green; any other comment, edit, close or merge needs its own.

Never paste drafted text into shell source, where backticks and $() in a quoted error would run. Write the body to a UTF-8 file in a scratch directory with a file tool and pass --body-file; put the title in a file too and pass --title "$(cat "$SCRATCH/title.txt")". Read the result back, and after a timeout check whether the write landed before retrying.

Drafting an issue or PR body, or planning a first contribution, is codetrial-contribute. Reviewing the backlog for duplicates and incomplete reports, and sweeping the open pull requests, is codetrial-triage. Approving a held workflow run, resolving an outdated review thread, hiding a superseded review and posting its fixed rebase request need no per-thread approval of text; that skill says when a sweep applies them without a separate confirmation.

Show full SKILL.md (426 more words)Show less

Pull request branches and review replies

The branch rules and what a review thread may carry are in CONTRIBUTING.md. The addition here is why the thread stays thin: the commit body already carries what and why, so a reply that re-summarizes the diff is telling the reviewer what git is showing them.

Layout

README.md has the tree under "Repository layout" and wins on it. Two directories it does not name matter as soon as you add a test:

text
tests/unit/     Unit test bodies, compiled into src/ by `#[path]`
tests/common/   What the integration tests share

No test bodies under src/

src/ holds implementation. A file there may declare a test module, and may carry a #[cfg(test)] item that a test needs to reach, but must not contain a test body. No gate lane enforces that, so grep -rn '#\[test\]' src/ is the check, and it returns nothing today.

rust
#[cfg(test)]
#[path = "../tests/unit/gemini.rs"]
mod tests;

Three lines, and the body lives in tests/unit/, mirroring the path under src/. tests/unit/web/pool.rs holds what src/web/pool.rs declares.

The indirection is what keeps both halves of the promise. A test under tests/*.rs is an integration test: it links the plain rlib and can reach only the public API, so moving these outright would have meant publishing internals for the tests' benefit. Declared this way they are still unit tests -- same module path, super:: still the containing module, private and pub(crate) items still in reach -- and none of it is visible to a dependent. The two halves cannot share a module, which is why tests/common/ exists and why the credential predicate is deliberately written twice.

Four rules follow, and each of them cost something to learn:

  • Never name a file tests/<dir>/main.rs. Cargo reads that as an integration-test target and compiles it a second time as a crate root, where every super:: in it fails. src/main.rs declares tests/unit/bin.rs for this reason. Any other name under tests/unit/ is inert to autodiscovery.
  • include_str! and include_bytes! resolve against the file that writes them, so a test reading its own production source needs the path rewritten when it moves. Two such tests failed loudly on the move and two more kept passing while reading the test file instead of the source, which is worse.
  • A second test module in one file keeps its name: src/accounts/schema.rs declares tests/unit/accounts/schema.migration_tests.rs.
  • tests/unit/ is not scanned by the gate's browser or Python lanes and has no main.rs, so nothing under it becomes a target on its own. It compiles only because something in src/ names it.

Generated files live under web/ but are owned by problem-bank/ and by the generators in scripts/; editing one by hand is a drift the gate catches. codetrial-verify names the generators.

© sysprog21, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .claude/skills/codetrial-conventions of sysprog21/codetrial.

Open the folder on GitHubat commit a77b0db

Compare with similar skills

Codetrial Conventions next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Codetrial Conventions compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Codetrial Conventions this skillsysprog21/codetrial149—~2.3kAutomated safety check: PassMIT
Git Workflow and Versioningaddyosmani/agent-skills103k2 repos~3.5kAutomated safety check: NotesMIT
React Router Pull Request Creatorremix-run/react-router57k—~2.5kAutomated safety check: PassMIT
Verdaccio Pull Request Workflowverdaccio/verdaccio18k—~1.9kAutomated safety check: PassMIT
Emoji Commit ConventionsbaptisteArno/typebot.io11k—~424Automated safety check: PassCustom licence
Draft Pull Request Creatorwordpress-mobile/WordPress-Android3.2k—~881Automated safety check: NotesGPL-2.0

Similar skills

  • Git Workflow and Versioning

    addyosmani/agent-skills

    Sets git habits for every change: short-lived branches, atomic commits with descriptive messages, clean pull requests, plus versioning, tagging and changelogs for releases.

    103k GitHub starsUsed in 2 repos~3.5k tokens
    DevelopmentAuto-check: notes
  • React Router Pull Request Creator

    remix-run/react-router

    Packages finished React Router work into a draft pull request: branch, commit, push, a written PR body and the right GitHub labels.

    57k GitHub stars~2.5k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Takes a change through a verdaccio pull request: branch, local checks, changeset, title and body, labels, CI and review rounds, and ports to other release lines.

    18k GitHub stars~1.9k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Emoji Commit Conventions

    baptisteArno/typebot.io

    Sets the repository's convention for commit messages and pull request titles: one emoji prefix for the main intent, a concise title and clean follow-up commits.

    11k GitHub stars~424 tokensUpdated today
    DevelopmentAuto-check passed
  • Draft Pull Request Creator

    wordpress-mobile/WordPress-Android

    Commits and pushes current changes, writes a pull request title and body from the branch history and template, and opens a draft PR on GitHub after you approve it.

    3.2k GitHub stars~881 tokensUpdated today
    DevelopmentAuto-check: notes
  • Submit PR

    tisfeng/Easydict

    创建或复用当前 checkout 已提交变更的 GitHub PR,必要时推送任务分支。PR 审查使用 review-pr;仅本地提交使用 git-commit。

    15k GitHub stars~595 tokensUpdated yesterday
    DevelopmentAuto-check passed

More from sysprog21/codetrial

  • Codetrial Contribute

    sysprog21/codetrial

    Help CodeTrial contributors turn observations into clear English GitHub issues, small contribution plans, and pull request descriptions, and see them through.

    149 GitHub stars~3.8k tokensUpdated today
    Auto-check passed
  • Codetrial Verify

    sysprog21/codetrial

    How a CodeTrial change is validated - scripts/test.sh as the credential-free gate, which generated artifacts have to be regenerated before it passes, the checks that need credentials or a browser…

    149 GitHub stars~2.2k tokensUpdated today
    Auto-check passed
  • Codetrial Web

    sysprog21/codetrial

    The CodeTrial browser half and the boundary it talks across - why web/ has no build step, how a file reaches the browser embedded or from disk, the vendored checksum-pinned assets, the data-channel…

    149 GitHub stars~1.3k tokensUpdated today
    Auto-check passed

Works with

Categories

Questions about Codetrial Conventions

What does Codetrial Conventions do?

The CodeTrial conventions the gate does not settle on its own, several of them enforced by the git hooks instead - the register a comment, a commit message, an issue or PR title and a PR reply are…. Codetrial Conventions is an agent skill from sysprog21/codetrial. The CodeTrial conventions the gate does not settle on its own, several of them enforced by the git hooks instead - the register a comment, a commit message, an issue or PR title and a PR reply are written in, what stays out of a public issue or PR, the untracked working docs at the repo root, where multi-byte characters are allowed and where they are not, deleting a redundant surface instead of deprecating it, the contracts in docs/ that refuse a change, and the repository layout.

When should I use Codetrial Conventions?

Codetrial Conventions fits situations like: drafting a commit message; choosing an issue; pushing a branch to open a pull request from; A public surface.

How do I install Codetrial Conventions in Claude Code?

Run `npx skills add sysprog21/codetrial --skill codetrial-conventions -a claude-code`. Or copy the skill folder (.claude/skills/codetrial-conventions in sysprog21/codetrial) into .claude/skills/codetrial-conventions in your project. Claude Code loads it when a task matches its description.

How do I install Codetrial Conventions in Codex?

Run `npx skills add sysprog21/codetrial --skill codetrial-conventions -a codex`. Or copy the skill folder (.claude/skills/codetrial-conventions in sysprog21/codetrial) into .agents/skills/codetrial-conventions in your project. Codex loads it when a task matches its description.

Can I use Codetrial Conventions in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add sysprog21/codetrial --skill codetrial-conventions -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/codetrial-conventions, .gemini/skills/codetrial-conventions, .github/skills/codetrial-conventions and .opencode/skills/codetrial-conventions in your project.

What does Codetrial Conventions need to run?

Going by SKILL.md and its folder, Codetrial Conventions needs the command-line tools its instructions call (git, cargo and make). Our summary lists: Python 3.

Does Codetrial Conventions access the network?

SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Codetrial Conventions safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Codetrial Conventions use?

Codetrial Conventions is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Codetrial Conventions use?

About 2.3k tokens (SKILL.md is roughly 9.3k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Codetrial Conventions?

Skills that share tags, products or a category with Codetrial Conventions: Git Workflow and Versioning (addyosmani/agent-skills, 103k stars), React Router Pull Request Creator (remix-run/react-router, 57k stars), Verdaccio Pull Request Workflow (verdaccio/verdaccio, 18k stars) and Emoji Commit Conventions (baptisteArno/typebot.io, 11k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Codetrial Conventions?

sysprog21 (a GitHub organization) maintains it in sysprog21/codetrial, which has 149 GitHub stars. The repository holds 4 skills in this directory. The repository was last updated on October 7, 2026.

Source: sysprog21/codetrial on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.