naming
Skill4 starsChanged 29 days agoMITView on GitHub
Use when changing how Noctra names or labels what it creates on GitHub or disk: branch names, ticket and sweep identifiers, worktree or log paths, commit messages, PR titles and footers, the model label, or the hidden markers the PR watcher matches.
16 other projects use a version of this.
Adopted by
Most recently taken up by
- juztripper/already-lookedtheir own version, first seen Nov 8, 2026
- gabrielbauman/skillstheir own version, first seen Nov 1, 2026
- nivoset/skillstheir own version, first seen Oct 18, 2026
- ahmadAlMezaal/noctraword for word, first seen Oct 15, 2026
- cofoundy/brand-skillstheir own version, first seen Oct 13, 2026
- tslateman/skillstheir own version, first seen Oct 11, 2026
Used with
Projects with it also use testing.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
NVIDIASkilltesting
Run Python and Rust tests for physicsnemo-curator using uv + pytest with coverage reporting via pytest-cov, and cargo-nextest for Rust tests. Includes benchmark workflows with pytest-benchmark and criterion.
Also in 3 projects that use this
Other versions16 projects use a version of this.
Word for word · 1
- ahmadAlMezaal/noctra★ 3100% same
Edited · 0
None found.
Wrote their own version · 15
- gridaco/grida★ 2.7ksame name
- trezor/trezor-suite★ 1.1ksame name
- meetrevision/revision-tool★ 473same name
- glacierphonk/naming★ 93same name
- cofoundy/brand-skills★ 67same name
- skyf0xx/gambit★ 29same name
- bd-dxg/skills★ 28same name
- howells/fiction★ 23same name
- nivoset/skills★ 4same name
- Autocss-com/ai★ 1same name
5 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository11 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- agent-backendsSkill
- architectureSkill
- auto-iterateSkill
- build-and-releaseSkill
- dashboardSkill
- github-identitySkill
- setup-and-configSkill
- sweepsSkill
- troubleshootingSkill
- writing-good-ticketsSkill
The file
Files
Naming in Noctra
Every name Noctra writes is read back later by something else: a branch name by the PR watcher, a footer by the lessons extractor, an identifier by the active set. Treat each one as a round trip. A change to how a name is written is only finished when every reader listed below recognises the new form.
Branches
| Kind | Form | Written by | Read back by |
| Ticket | noctra/<identifier, lowercased>, e.g. noctra/eng-460 | repo.BranchName | github.ListNoctraPRs (prefix), identifierFromBranch (pipeline/iterate.go), cleanup (prefix) |
| Sweep | noctra/sweep-<task>, e.g. noctra/sweep-deps-update | sweep.SweepBranchName | sweep.TaskSuffixFromBranch, identifierFromBranch, the open-PR check in processSweepTask |
- The repo is left out of sweep branch names because a branch already lives in its repo. It stays in the identifier (below).
noctra/is reserved for branches Noctra creates. The rule for humans and other agents is inCLAUDE.md.github.ListNoctraPRsclaims a PR only when all three match: thenoctra/prefix, a body marker (below), and the author:app/<slug>in GitHub App mode,@mein personal-token mode (github.Client.Author).
Identifiers, directories and logs
- Ticket identifier: the tracker's ID, e.g.
ENG-460orGH-<SLUG>-<n>. - Sweep identifier:
SWEEP-<repo-slug>-<task>(sweep.SweepIdentifier). It must stay repo-qualified: it keys the active set, the worktree directory and the log file, so two repos running the same task would otherwise block each other.identifierFromBranchrebuilds it from a short sweep branch plus the PR'sowner/name. - Repo slug:
repo.Slug(owner/name), e.g.onelastcommit-onenote-mcp. It equals the clone directory under~/.noctra-repos, which is where the scheduler reads it (repo.SlugFromPath), so both sides agree. - Worktree
~/.noctra-worktrees/<identifier>; loglogs/<identifier>.logunder the config dir. - Show people
owner/name, never the slug: the sweep PR body's Repo: line usessweepRepoName.
Commit messages and PR titles
- Subject and PR title follow Conventional Commits when the target repo uses them (
repo.UsesConventionalCommits). The type comes from the agent's release-bump suggestion (patchgivesfix,minorgivesfeat,majorgivesfeat!plusBREAKING CHANGE), built byconventionalSubject. Otherwise the subject is<id>: <title>. - The body opens with one of three fixed phrases:
Implemented by Noctra,Follow-up commit by Noctra,Autonomous maintenance by Noctra.lessons.noctraCommitRematches them to keep Noctra from learning from its own commits, so the phrases stay word for word; anything may follow them. - A
Co-authored-by:trailer names the agent backend (Backend.CoAuthor).
PR bodies and replies
- Footer:
*<phrase> by [Noctra](https://github.com/onelastcommit/noctra) 🦉 using <runner label>*. github.NoctraPRBodyMarker(<!-- noctra-authored -->) goes in every PR body Noctra writes, ticket, sweep or salvaged draft alike. The watcher also accepts the legacy visible footerby [Noctra]for PRs that predate the marker.github.NoctraReplyMarker(<!-- noctra-reply -->) goes in every comment and thread reply Noctra posts, including Gemini's inline findings. Without it the watcher re-reads Noctra's own words as review feedback and loops.
The model label
agent.RunnerLabel(backend.Label(), usage.Model) produces the runner label, e.g. Claude Code (Opus 5.5) or OpenAI Codex (GPT-5.5). With no model it is the bare backend label. agent.ModelDisplayName prettifies claude-<family>-<major>[-<minor>][-<date>] IDs (dropping a [1m]-style suffix) and gpt-* IDs, and shows anything else verbatim.
| Backend | Where the model comes from |
| Claude Code | modelUsage in the run's JSON result, taking the costliest model since smaller ones handle sub-tasks. In the streaming path (token-capped runs) an aborted run never gets a result, so it falls back to the assistant messages seen, weighted by output tokens. |
| Codex | The session header line model: <id> that codex exec prints before the transcript (codexModel). |
| Copilot, Antigravity | Not read yet. Both accept --model, but neither output format has been checked against a real run, so their label stays bare. |
Parse a backend's model only from output you have captured from a real run. A guessed format fails silently and shows nothing or the wrong model.
Bot identity
In GitHub App mode commits are authored and committed as noctra-agent[bot] <336615789+noctra-agent[bot]@users.noreply.github.com>, taken from the linked instance (ghauth.IdentityEnv). The slug, bot login and bot ID come from the token service's /config, so a self-hosted app gets its own names with no code change.
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.

