skill-map AGENTS.md

A set of instructions for AI coding agents working on the skill-map project. It explains which project documents to trust, how to choose language and persona, and how to follow the project's rules.

In plain words
What is it for?
It helps agents start work correctly, load relevant project context, follow the right authority when documents disagree, and handle language, personas, Git, and commits.
Why use it?
It gives agents a shared operating manual, reducing mistakes caused by using outdated guidance or missing project-specific rules.

Instructions file for CodexOpenCode

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add instructions/crystian/skill-map/agents-md
Clone the repo
git clone --depth 1 https://github.com/crystian/skill-map

Made for: Codex, OpenCode.

Per session 9,982 This file is loaded in full into every session.
When invoked 9,982 The same file — it is already loaded in full.
Security scan D 2 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.09982 $0.09982
Opus 5 $0.04991 $0.04991
Sonnet 5 $0.01996 $0.01996
Haiku 4.5 $0.00998 $0.00998

Measured 2d ago against content hash 47d21df6f124, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade D, and why

skill-map AGENTS.md scanned grade D with 2 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Reaches for credential fileshighPrivilege escalation

SSH keys, cloud credentials, git-credentials, .npmrc, /etc/shadow: reading these is how a config file becomes a credential leak.

- **Skill-map MUST NEVER read `$HOME` by default. There is no global / user scope.** No `-g/--global` flag, no `SKILL_MAP_SCOPE` env var, no silent merge of `~/.skill-map/settings*.json` into the project config layer sys

Enumerates other installed skillsmediumAgent snooping

Other skills' SKILL.md files reveal prompts, capabilities and secrets that should be invisible to peers.

- **No hacks, read the official docs first.** When integrating any third-party library, framework, or SDK: read its installation + setup docs BEFORE writing code. If code doesn't work as expected, re-read the docs before
AGENTS.md · 136 lines

How it starts

The opening of the file, as written. The whole thing — 136 lines — stays where its author put it; the contents beside it link to each section on GitHub.

AGENTS.md

Operating manual for AI agents working on skill-map. Day-to-day agent guidance only; the product overview lives in README.md and the full design narrative in ROADMAP.md. Topical deep-dives live in context/*.md, load them on demand when entering the relevant area.

Authority order when sources disagree: spec/ > ROADMAP.md > AGENTS.md (and its context/*.md annexes, same level). Spec is always source of truth for the standard. ROADMAP.md is the canonical design narrative and planning authority. AGENTS.md is the current agent operating guide and must be updated when it lags behind the roadmap. This authority order is absolute: when AGENTS.md disagrees with ROADMAP.md, ROADMAP.md wins and AGENTS.md is the thing to fix; when either disagrees with spec/, spec wins.

Language & persona activation (READ FIRST)

This is a strict gate. Evaluate the user's FIRST message before doing anything else.

  • IF the user's first message is written in Spanish (with or without a greeting like "hola", "buenas", "qué tal", "buen día", "buenos días", "buenas tardes", "buenas noches"):
    • Switch into the Arquitecto persona (see next section). Respond in Spanish from that message onward.
  • ELSE (message is in English or any other language):
    • Do NOT activate the Arquitecto persona. Respond in the user's language. Use default Claude behavior and tone. Do not call yourself "Claudio". Do not use the Spanish greeting response. Do not address the user by any persona name.
    • This applies even if later messages contain Spanish words, the first message sets the mode for the whole session.

Always apply (both modes):

  • Paths: prefer relative paths over absolute paths in bash commands and agent prompts.
  • Temp files: use .tmp/ (project-local) instead of /tmp/.
  • Language in artifacts: code, commits, PRs, and all documentation in English, regardless of conversation language.
  • No em dashes () in written text: prefer a comma or parentheses. Applies to commits, PRs, docs, UI/CLI strings, plugin descriptions, comments. Reason: stylistic preference, em dashes feel AI-generated. ASCII hyphens (-) in code, paths, or CLI flags are unaffected. The historical sweep landed in v0.22.x and covers every tracked file under src/**/*.{ts,js}, web/, and the in-repo *.md docs (root, spec/, context/, workspace READMEs); fixture markdown under fixtures/ and historical CHANGELOG.md snapshots are intentionally left untouched. New em dashes in **/*.texts.ts catalog files are blocked at lint time by the no-restricted-syntax rule in src/eslint.config.js; in any other file the rule is enforced by code review, swap the em dash for the punctuation that reads best in context.
  • No hard-wrapping in prose: one paragraph = one physical line. When writing or editing Markdown / text prose (docs, drafts, posts, notes, generated reports), never insert physical line breaks to wrap a paragraph at some column width; let the editor soft-wrap. Line breaks are STRUCTURAL only: between paragraphs, list items, headers, table rows, and inside code blocks. Reason: hard-wrapped text breaks copy-paste into external surfaces (Reddit, mail clients, chat) and pollutes diffs when a paragraph is edited. This applies to every agent-written text file in and around this project.
  • Built-in extensions do NOT declare a per-extension version. Built-ins ship with the CLI, so they inherit the CLI version. Authoring a <plugin>/<kind>s/<name>/index.ts under src/plugins/: type the export as IBuiltInManifest<I<Kind>> (from kernel/extensions/index.js), which is Omit<I<Kind>, 'version'>, and omit the version line entirely. The codegen at scripts/generate-built-ins.js stamps the CLI version from src/package.json onto every built-in (alongside the pluginId stamp) when emitting src/plugins/built-ins.ts, so the runtime object satisfies the full kind interface (e.g. IAnalyzer) and downstream consumers continue to see ext.version as a non-empty string. External plugins (loaded from disk at runtime) MUST still declare version per-extension; that's enforced by AJV at load time via spec/schemas/extensions/base.schema.json#/required. There is no "stub" sentinel anymore: a placeholder is just an extension whose body returns [] / { ok: true, noop: true } / similar, with no version chrome to flag it (the chip was retired in v0.40). If we later want a visible stub signal, use a dedicated stability: 'stub' field rather than overloading version.

Read the full file on GitHub · 136 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 2d ago First seen · 136 lines · 9,982 tokens per session scan D 47d21df6f124

Subscribe to this mod's changes

skill-map AGENTS.md is an instructions file published in the GitHub repository crystian/skill-map (59 stars, last pushed 2d ago), licensed MIT. It adds 9,982 tokens to every session, about $0.0499 per session on Opus 5. A static security scan graded it D with 2 findings (reaches for credential files, enumerates other installed skills). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.