Agent Self-Customization
nanocoai/nanoclaw
A decision tree for an agent changing its own setup: edit memory directly, request approval for packages and MCP servers, and delegate code edits to a builder agent.
A skill your agent uses when the user asks to initialize a repo, create AGENTS.md, generate contributor guidelines, or set up agent-oriented documentation for a codebase.
$ npx skills add EliasOulkadi/shokunin --skill init -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install EliasOulkadi/shokunin init --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/EliasOulkadi/shokunin.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.pack/skills/init .claude/skills/init && rm -rf skills-srcUse ~/.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/
Install the "init" agent skill from https://github.com/EliasOulkadi/shokunin/tree/master/.pack/skills/init into .claude/skills/init/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "init", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/EliasOulkadi/shokunin/tree/master/.pack/skills/initType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add EliasOulkadi/shokunin --skill init -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install EliasOulkadi/shokunin init --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/EliasOulkadi/shokunin.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.pack/skills/init .agents/skills/init && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "init" agent skill from https://github.com/EliasOulkadi/shokunin/tree/master/.pack/skills/init into .agents/skills/init/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "init", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add EliasOulkadi/shokunin --skill init -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install EliasOulkadi/shokunin init --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/EliasOulkadi/shokunin.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.pack/skills/init .cursor/skills/init && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "init" agent skill from https://github.com/EliasOulkadi/shokunin/tree/master/.pack/skills/init into .cursor/skills/init/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "init", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/EliasOulkadi/shokunin.git --path .pack/skills/init--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add EliasOulkadi/shokunin --skill init -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install EliasOulkadi/shokunin init --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/EliasOulkadi/shokunin.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.pack/skills/init .gemini/skills/init && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "init" agent skill from https://github.com/EliasOulkadi/shokunin/tree/master/.pack/skills/init into .gemini/skills/init/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "init", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install EliasOulkadi/shokunin initInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add EliasOulkadi/shokunin --skill init -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/EliasOulkadi/shokunin.git skills-src && mkdir -p .github/skills && cp -r skills-src/.pack/skills/init .github/skills/init && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "init" agent skill from https://github.com/EliasOulkadi/shokunin/tree/master/.pack/skills/init into .github/skills/init/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "init", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add EliasOulkadi/shokunin --skill init -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install EliasOulkadi/shokunin init --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/EliasOulkadi/shokunin.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.pack/skills/init .opencode/skills/init && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "init" agent skill from https://github.com/EliasOulkadi/shokunin/tree/master/.pack/skills/init into .opencode/skills/init/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "init", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
initA skill your agent uses when the user asks to initialize a repo, create AGENTS.md, generate contributor guidelines, or set up agent-oriented documentation for a codebase.
Init is an agent skill from EliasOulkadi/shokunin. Use when the user asks to initialize a repo, create AGENTS.md, generate contributor guidelines, or set up agent-oriented documentation for a codebase.
Its SKILL.md is about 2.2k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts. Compatibility notes: opencode
It sits in Agent Workflows, covering Agent instruction files and Building AI agents. The repository describes itself as: 職人 Shokunin 62 AI agent skills for OpenCode, Claude Code, Cursor, Windsurf. ChromaDB memory, MCP servers, declarative self-updates. Multi-model, open source, zero cost. The licence is MIT.
7 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 4c68e5b. It shows what the files ask for, not the result of running them.
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.
Shell commands in SKILL.md call:
npmFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use npm, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
opencode
From compatibility in the SKILL.md frontmatter.
Init loads about 2.2k tokens when it runs. Until then it costs about 39 tokens; SKILL.md has 1,011 words of instructions outside code blocks.
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.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
platform-relevant entries (node_modules, .env, etc.)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.
The full file from EliasOulkadi/shokunin at commit 4c68e5b, republished under its MIT licence (© EliasOulkadi). 1,011 words, ~2,156 tokens.
.claude/skills/init/SKILL.md (or your agent's skills folder).Analyze a codebase and generate a concise, accurate AGENTS.md contributor guide.
Target: the current working directory, unless user provided another folder as input.
Collect facts about the repository. Only record what is actually found — never invent information.
These probes are independent — run them in parallel (e.g., dispatch subagents) when the tooling supports it.
Map the repo structure (3 levels deep, excluding .git, node_modules, dist, build, pycache, .venv and other autogenerated folders). This is analysis input — the output AGENTS.md should describe non-obvious architecture, not list directories. Focus on the "big picture" that requires reading multiple files to understand.
Extract actual command definitions from the project's build system: package.json scripts, Makefile targets, pyproject.toml scripts, Cargo.toml bins/workspace members, go.mod module path, docker-compose.yml services, etc.
Check for and record key settings of:
.cursorrules, .cursor/rules/, .github/copilot-instructions.mdIf agent rules files exist, read and extract the important parts — focus on conventions that matter for code generation, not verbatim content.
Review the last 20 commits to identify commit message conventions and patterns. If this fails (not a git repo or shallow clone), note the limitation and skip.
README.md exists, read it for context about the repo's purpose and setup.AGENTS.md already exists, read it — you'll be improving it rather than starting fresh.CLAUDE.md exists, read it for additional context.# Repository Guidelines## Project Structure & Module Organization Architecture that requires reading multiple files to understand. Omit anything obvious from opening a single file.
## Build, Test, and Development Commands Actual commands from the build system. Include how to run a single test.
## Coding Style & Naming Conventions Enforced rules from linter/formatter configs. Include tool names.
## Testing Guidelines Test framework, how to run tests, coverage requirements if any.
## Commit & Pull Request Guidelines Commit conventions derived from actual git history. Note any PR templates.
Add other sections only if facts strongly support them (e.g., Architecture Overview, Agent Instructions).
Do not include generic development practices such as:
Do not invent sections like "Common Development Tasks" or "Tips for Development" unless the repo's own documentation expressly contains them. Do not list every file — only document what is non-obvious.
Before finalizing, verify:
npm test over "run the test suite"| Cause | Fix |
|---|---|
| Not a git repository | Skip git history section. Note limitation explicitly in output. |
| Shallow clone with limited commit history | Use available commits. Note "limited history available." |
| No build system detected | Skip build commands section. Document that no formal build system was found. |
| Existing AGENTS.md has inaccuracies | Fix errors, fill gaps, remove generic advice. Show diff before overwriting. |
| Agent rules files not found | Skip agent rules integration. Never invent conventions. |
| Mixed or ambiguous conventions across files | Note the inconsistency. Default to the dominant convention in the majority of files. |
| Empty repository with no source files | Generate minimal AGENTS.md with project name only. Add "populate as project grows." |
| Pattern | Problem | Fix |
|---|---|---|
| Including generic advice ("write unit tests") | Not actionable, not project-specific | Only include conventions actually enforced in the codebase |
| Listing every directory in the repo | Adds noise, not architecture insight | Document only non-obvious structure that spans multiple files |
| Copying agent rules verbatim into AGENTS.md | Redundant and bloated | Weave important rules into relevant sections only |
| Inventing commands not in the build system | Build breaks when user tries them | Extract commands only from actual build system files |
| Missing sections where evidence exists | Incomplete onboarding guide | Include all sections that have supporting evidence |
| Overwriting correct, specific existing content | Loses institutional knowledge | Preserve correct content. Fix only inaccuracies and gaps. |
| Exceeding 400 words with filler prose | Too long to scan; loses utility | Cut every sentence that doesn't convey a specific convention |
© EliasOulkadi, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .pack/skills/init of EliasOulkadi/shokunin.
Open the folder on GitHubat commit 4c68e5b
Init 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Init this skillEliasOulkadi/shokunin | 114 | — | ~2.2k | Automated safety check: Notes | MIT | |
| Agent Self-Customizationnanocoai/nanoclaw | 31k | — | ~1.5k | Automated safety check: Notes | MIT | |
| Create Agentprassanna-ravishankar/repowire | 264 | — | ~388 | Automated safety check: Pass | None | |
| Omnigent Knowledge Baseomnigent-ai/omnigent | 11k | — | ~3.4k | Automated safety check: Pass | Apache-2.0 | |
| Forge Agent Creatortailcallhq/forgecode | 7.6k | — | ~7.3k | Automated safety check: Pass | Apache-2.0 | |
| Agents Md Generatorjulianromli/opencode-template | 144 | — | ~1.4k | Automated safety check: Notes | None |
nanocoai/nanoclaw
A decision tree for an agent changing its own setup: edit memory directly, request approval for packages and MCP servers, and delegate code edits to a builder agent.
prassanna-ravishankar/repowire
A skill your agent uses when creating, updating, or explaining a standing Repowire agent folder, worker folder, durable-job executor context, or reusable agent-specific AGENTS.md guidance.
omnigent-ai/omnigent
Reference for the Omnigent agent platform: agent directory layout, config.yaml fields, executor types, harness options, AGENTS.md and skill structure.
tailcallhq/forgecode
Guides creating and editing custom agents for the code-forge application as Markdown files with YAML frontmatter in the project's .forge/agents folder.
julianromli/opencode-template
Generate hierarchical AGENTS.md structures for codebases. An agent skill from julianromli/opencode-template.
notque/vexjoy-agent
Toolkit management: create and evaluate skills and agents, manage routing tables, generate Claude.md.
EliasOulkadi/shokunin
Design CI/CD pipelines for GitHub Actions, GitLab CI, and CircleCI with matrix builds, test sharding, caching, Docker layer caching, OIDC auth, deployment strategies (rolling, blue-green, canary)…
EliasOulkadi/shokunin
Build production-grade components for React, Vue 3, and Svelte 5 with all states (loading, empty, error, success, idle), TypeScript strict, WCAG 2.2 accessibility, server components (RSC), and…
EliasOulkadi/shokunin
PostgreSQL database administration — backup/restore (pgdump, PITR, WAL archiving), health monitoring (connections, bloat, cache hit ratio, dead tuples), connection pooling (PgBouncer), replication…
EliasOulkadi/shokunin
Design database schemas with Prisma/Drizzle, PostgreSQL index strategy (B-tree, GIN, GiST, BRIN, Hash), query optimization (EXPLAIN ANALYZE), migration safety (expand/contract, zero-downtime), and…
EliasOulkadi/shokunin
Optimize Docker images with multi-stage builds, distroless bases, BuildKit cache mounts, multi-arch builds, compose watch, security hardening (non-root, seccomp, capabilities drop), and…
EliasOulkadi/shokunin
Design error handling, structured logging, and observability with OpenTelemetry (traces, metrics, logs), error classification, recovery patterns (retry with jitter, circuit breaker, bulkhead…
Categories
A skill your agent uses when the user asks to initialize a repo, create AGENTS.md, generate contributor guidelines, or set up agent-oriented documentation for a codebase. Init is an agent skill from EliasOulkadi/shokunin.md, generate contributor guidelines, or set up agent-oriented documentation for a codebase.
Init fits situations like: the user asks to initialize a repo; create AGENTS.md; generate contributor guidelines; set up agent-oriented documentation for a codebase.
Run `npx skills add EliasOulkadi/shokunin --skill init -a claude-code`. Or copy the skill folder (.pack/skills/init in EliasOulkadi/shokunin) into .claude/skills/init in your project. Claude Code loads it when a task matches its description.
Run `npx skills add EliasOulkadi/shokunin --skill init -a codex`. Or copy the skill folder (.pack/skills/init in EliasOulkadi/shokunin) into .agents/skills/init in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add EliasOulkadi/shokunin --skill init -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/init, .gemini/skills/init, .github/skills/init and .opencode/skills/init in your project.
Going by SKILL.md and its folder, Init needs the command-line tools its instructions call (npm). Our summary lists: Docker. Compatibility (from SKILL.md): opencode.
SKILL.md contains no URLs. Its commands use npm, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
Init is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.2k tokens (SKILL.md is roughly 8.6k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Init: Agent Self-Customization (nanocoai/nanoclaw, 31k stars), Create Agent (prassanna-ravishankar/repowire, 264 stars), Omnigent Knowledge Base (omnigent-ai/omnigent, 11k stars) and Forge Agent Creator (tailcallhq/forgecode, 7.6k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
EliasOulkadi (a GitHub user) maintains it in EliasOulkadi/shokunin, which has 114 GitHub stars. The repository holds 49 skills in this directory. The repository was last updated on October 5, 2026.
Source: EliasOulkadi/shokunin on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.