compass
Skill4 starsChanged 14 days agoMITView on GitHub
Short orientation at the start or in the middle of a coding session. It says where we are, what we have and what comes next, and the user does not have to explain anything. It reads the conversation first, then live read-only state - the git branch and its commits against the target, the open merge or pull request with its checks and unresolved threads, the Jira ticket with its subtasks, and any background job that still runs. It answers in about 150 words in a fixed shape (Where we are / What we have / What I propose next, plus one question that starts the next step), in the user's language, with Simplified Technical English rules. Strictly read-only. Use when the user says "/compass", "where are we", "status", "recap", "what's next", "where did we stop", "in short words", "unde suntem", "ce avem", "ce urmează", "unde am rămas", or opens a session and asks for orientation.
- Commits and pushes
13 other projects use a version of this.
Adopted by
Most recently taken up by
- mqmalagris/agent-skillstheir own version, first seen Nov 5, 2026
- me-cedric/agent-compasstheir own version, first seen Nov 1, 2026
- AIOSAI/AIPasstheir own version, first seen Nov 1, 2026
- norrietaylor/distillerytheir own version, first seen Nov 1, 2026
- spacedock-dev/spacedocktheir own version, first seen Nov 1, 2026
- luci-efe/skillstheir own version, first seen Nov 1, 2026
Other versions13 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 13
- AIOSAI/AIPass★ 312same name
- simota/agent-skills★ 96same name
- spacedock-dev/spacedock★ 85same name
- norrietaylor/distillery★ 25same name
- Zenobia000/agent-skills-starter★ 4same name
- me-cedric/agent-compass★ 3same name
- Aether-liusiqi/compass★ 2same name
- healthier-vitamins/agentic-grimoire★ 2same name
- chrisjay629/compass★ 1same name
- jaysu66/atria-skill-library★ 1same name
3 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 repository4 other files it gives its agents.
- figma-design-systemSkill
- first-user-auditSkill
- prune-testsSkill
- reference-librarySkill
The file
We split this skill into the rules it gives an agent
10 rules. 0 are common, 9 are distinctive, and 1 is very specific to this project.
0
Common
Most of the 9 edited versions we read keep these.
9
Distinctive
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- could be automatic: a setting could enforce it
- Distinctive: line 14
Read-only: No commit, stage, stash, checkout, push, git fetch, build, test or file edit.
- Distinctive: line 18
Scoped commands only: Do not run a search over the whole repository.
- Distinctive: line 19
Skip silently: When a token is missing or a call fails, drop that source.
- Very specific: line 35
Read sources 2 to 4 with one call, where <skill-dir> is the directory that holds this file:
- Distinctive: line 51
Read the output with these rules:
- Distinctive: line 62
Write in the user's language.
- Distinctive: line 67
Fresh session: If the conversation has no earlier work, add one short line: "New session: I read the state from git, the request and the …
- Distinctive: line 82
No filler, no pleasantries, no recap of the answer at the end.
- Distinctive: line 83
No file paths or class names, unless one is load-bearing.
- Distinctive: line 85
Use the language's correct diacritics.
“Common” is measured: kept by at least 6 in 10 of the 9 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
compass: where we are, what we have, what comes next
This skill replaces the question "so where are we, what do we have and what do we do next, in short words". The user usually gives no argument. Answer at once. Do not ask the user anything before the answer.
Hard rules
- Read-only. No commit, stage, stash, checkout, push,
git fetch, build, test or file edit. No write to the merge or pull request, and no write to the tracker. Do not start, stop or wait for a background job. Report and propose, nothing else. - Never print a token.
scripts/state.pyreads them from the environment and never prints them. - Scoped commands only. Do not run a search over the whole repository; on a large one it times out.
- Skip silently. When a token is missing or a call fails, drop that source. Do not mention the failure.
- Style override. This answer ignores every compression style the session uses.
1. Sources, in this order
- The conversation is the main source. Collect what we did in this session, what is still open, what the user decided and what the user refused. The conversation wins, except where live state proves a fact: a commit exists, a pipeline is red.
- Git, in the current directory, and in every worktree the conversation names.
- The merge or pull request of the branch: GitLab through its REST API, GitHub through
gh. - The Jira ticket of the branch, with its subtasks. When the branch names a subtask, the script shows the subtask's parent.
- Background jobs of this session. Take them from the conversation. A background shell or agent with no completion notice yet still runs. A notice that shows a failure or a stop is a blocker.
Read sources 2 to 4 with one call, where <skill-dir> is the directory that holds this file:
python3 <skill-dir>/scripts/state.py [<worktree path> ...]The script finds everything else itself:
| Source | How the script finds it |
| Target branch | The target of the open merge or pull request, else origin/HEAD, else main. |
| GitLab | The host and project path of origin, with GITLAB_TOKEN. |
| GitHub | gh pr list and gh api graphql, with the gh login. |
| Jira ticket | A key in the branch name (feature/ABC-12). Else the branch's trailing number with the project prefix found in its commits or in the request title (feature/me/12 and a commit ABC-13 ... give ABC-12). Else the first key in the commits. |
| Jira access | JIRA_BASE with JIRA_TOKEN (Server or Data Center, Bearer), or JIRA_EMAIL with JIRA_TOKEN (Cloud, Basic). JIRA_TOKEN_CMD, when set, is a command that prints a fresh token. |
Read the output with these rules:
WARNING: the upstream is the target branchis a blocker: a baregit pushwould land on the target branch.- Mention uncommitted files only when they belong to the current work. Ignore build caches and crash dumps.
- Failed or cancelled checks are a blocker. Running checks are a fact for "Where we are".
- Unresolved threads are a next step, not a blocker.
2. Output
Write in the user's language. Name the three parts in that language too; in Romanian they are "Unde suntem", "Ce avem" and "Ce propun mai departe". Use exactly this shape:
- Blocker first, only if one exists. A red pipeline, a failing test, a stopped background job, or a decision only the user can take. One or two sentences, before "Where we are".
- Fresh session. If the conversation has no earlier work, add one short line: "New session: I read the state from git, the request and the tracker."
- Where we are. One or two sentences. Name the ticket and the branch, and say how far the work is.
- What we have. Three to five bullets, one short sentence each. Describe behaviour in plain words: what the user or the product now does. Ticket keys are fine. Class names and file names are not.
- What I propose next. A numbered list of one to three steps. Put the recommended step first.
- Last line. One question that asks to start step 1, for example "Shall I open the merge request?".
3. Style
Apply the ASD-STE100 (Simplified Technical English) rules, in any language:
- One idea per sentence. At most 20 words per sentence.
- Active voice, with the actor named. Simple words and simple tenses.
- No filler, no pleasantries, no recap of the answer at the end.
- No file paths or class names, unless one is load-bearing.
- About 150 words in total.
- Use the language's correct diacritics.
4. Reference: the target tone
Copy the tone and the density of this answer, not its content.
Where we are. SHOP-412 is in
main. SHOP-420 is on the branchfeature/420, with three of its four subtasks done, tested and pushed.What we have.
- 421: a customer can reset a forgotten password from the sign-in page.
- 422: the reset link works once and expires after 30 minutes.
- 423: the customer gets an email when the password changes, with a link to undo it.
- A support user cannot start a reset in a customer's name.
What I propose next:
- I open the merge request for 420.
- We do 424, the live check, together. You try the reset in the browser; I give you 3 short scenarios.
- After the live check, I adjust the email texts if they read badly.
Shall I open the merge request?
What makes it work: each bullet says what the product now does, and nothing names a class. Each step is one action the user can approve. The last line asks for a single yes.
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.

