Octocode Code Research
bgauryy/octocode
Researches code with evidence: traces callers, imports and cross-repo links, diagnoses failures and reports findings with exact file and line references and a confidence label.
Orientation to the aspens codebase for agents working on the CLI itself: its Node.js stack, commands, module layout and debug settings.
$ npx skills add aspenkit/aspens --skill base -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install aspenkit/aspens base --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/aspenkit/aspens.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/base .claude/skills/base && 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 "base" agent skill from https://github.com/aspenkit/aspens/tree/main/.agents/skills/base into .claude/skills/base/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "base", 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/aspenkit/aspens/tree/main/.agents/skills/baseType 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 aspenkit/aspens --skill base -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install aspenkit/aspens base --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/aspenkit/aspens.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/base .agents/skills/base && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "base" agent skill from https://github.com/aspenkit/aspens/tree/main/.agents/skills/base into .agents/skills/base/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "base", 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 aspenkit/aspens --skill base -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install aspenkit/aspens base --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/aspenkit/aspens.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/base .cursor/skills/base && 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 "base" agent skill from https://github.com/aspenkit/aspens/tree/main/.agents/skills/base into .cursor/skills/base/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "base", 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/aspenkit/aspens.git --path .agents/skills/base--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 aspenkit/aspens --skill base -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install aspenkit/aspens base --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/aspenkit/aspens.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/base .gemini/skills/base && 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 "base" agent skill from https://github.com/aspenkit/aspens/tree/main/.agents/skills/base into .gemini/skills/base/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "base", 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 aspenkit/aspens baseInstalls 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 aspenkit/aspens --skill base -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/aspenkit/aspens.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/base .github/skills/base && 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 "base" agent skill from https://github.com/aspenkit/aspens/tree/main/.agents/skills/base into .github/skills/base/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "base", 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 aspenkit/aspens --skill base -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install aspenkit/aspens base --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/aspenkit/aspens.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/base .opencode/skills/base && 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 "base" agent skill from https://github.com/aspenkit/aspens/tree/main/.agents/skills/base into .opencode/skills/base/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "base", 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.
baseOrientation to the aspens codebase for agents working on the CLI itself: its Node.js stack, commands, module layout and debug settings.
Aspens is a Node.js (ESM) command-line tool that scans a repository, writes project-specific instructions and skills for Claude Code and Codex CLI, and keeps them current as the code changes. This skill orients an agent inside that repository. The stack is Commander for the CLI, Vitest for tests and es-module-lexer for import analysis, with clack prompts and picocolors for terminal output.
It lists the commands: npm test, aspens scan for deterministic analysis without an LLM, doc init to generate skills, hooks and AGENTS.md for a chosen target, doc impact to report freshness, coverage and drift, doc sync to update skills from git diffs, doc graph to rebuild the import graph cache, and add, customize and save-tokens helpers. The architecture runs from bin/cli.js through command handlers in src/commands to modules in src/lib for scanning, graph building, running the Claude or Codex CLI, assembling context and reading and writing skill files. ASPENS_DEBUG and ASPENS_TIMEOUT control debug dumps and the LLM timeout.
Read from SKILL.md and the folder at commit 8dde826. 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:
npmcodexnodeclaudeFrom 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.
aspens Project Conventions loads about 1.6k tokens when it runs. Until then it costs about 17 tokens; SKILL.md has 653 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 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.
The full file from aspenkit/aspens at commit 8dde826, republished under its MIT licence (© aspenkit). 653 words, ~1,602 tokens.
.claude/skills/base/SKILL.md (or your agent's skills folder).You are working in aspens — a CLI that keeps coding-agent context accurate as your codebase changes. Scans repos, generates project-specific instructions and skills for Claude Code and Codex CLI, and keeps them fresh.
Node.js 20+ (ESM) | Commander | Vitest | es-module-lexer | @clack/prompts | picocolors
npm test — Run vitest suitenpm start / node bin/cli.js — Run CLIaspens scan [path] — Deterministic repo analysis (no LLM)aspens doc init [path] — Generate skills + hooks + AGENTS.md (--target claude|codex|all, --recommended for full recommended setup)aspens doc impact [path] — Show freshness, coverage, and drift of generated context (--apply for auto-repair, --backend/--model/--timeout/--verbose for LLM interpretation)aspens doc sync [path] — Incremental skill updates from git diffsaspens doc graph [path] — Rebuild import graph cache (.claude/graph.json)aspens add <type> [name] — Install templates (agents, commands, hooks)aspens customize agents — Inject project context into installed agentsaspens save-tokens [path] — Install token-saving session settings (--recommended for no-prompt install, --remove to uninstall)ASPENS_DEBUG=1 dumps raw stream events to $TMPDIR/aspens-debug-{stream,codex-stream}.jsonASPENS_TIMEOUT (seconds) overrides default LLM timeout when --timeout not passedCLI entry (bin/cli.js) → command handlers (src/commands/) → lib modules (src/lib/)
src/lib/scanner.js — Deterministic repo scanner (languages, frameworks, domains, structure)src/lib/graph-builder.js — Static import analysis via es-module-lexer (hub files, clusters, priority)src/lib/graph-persistence.js — Graph serialization, subgraph extraction, code-map + index generationsrc/lib/runner.js — Claude/Codex CLI wrapper (runClaude for stream-json, runCodex for Codex JSONL); also hosts loadPrompt (partial substitution) and parseFileOutput/validateSkillFilessrc/lib/context-builder.js — Assembles repo files into prompt-friendly contextsrc/lib/skill-writer.js — Writes skill files and directory-scoped files, generates skill-rules.json, merges settingssrc/lib/skill-reader.js — Parses skill files, frontmatter, triggers: blocks, legacy activation patterns, keywordssrc/lib/diff-classifier.js — Maps changed files to affected skills for doc-syncsrc/lib/diff-helpers.js — Targeted file diffs and prioritized diff truncation for doc-syncsrc/lib/git-helpers.js — Git repo detection, git root resolution, diff retrieval, log formattingsrc/lib/git-hook.js — Post-commit git hook installation/removal for auto doc-sync (monorepo-aware)src/lib/impact.js — Context health analysis: domain coverage, hub surfacing, drift detection, hook health, save-tokens health, usefulness summary, value comparison, opportunitiessrc/lib/save-tokens.js — Save-tokens config defaults, settings builders, gitignore/readme generatorssrc/lib/timeout.js — Timeout resolution (--timeout flag > ASPENS_TIMEOUT env > default)src/lib/errors.js — CliError class (structured errors caught by CLI top-level handler)src/lib/target.js — Target definitions (claude/codex), config persistence (.aspens.json) with saveTokens feature config; getAllowedPaths for multi-target sanitizationsrc/lib/target-transform.js — Transforms Claude-format output to other target formatssrc/lib/backend.js — Backend detection and resolution (which CLI generates content)src/lib/path-resolver.js / src/lib/source-exts.js — Source-file extension and path resolution helpers shared by scanner/graphsrc/lib/parsers/ — Language-specific import parsers (TypeScript, Python)src/lib/frameworks/ — Framework-specific detectors (e.g. Next.js)src/prompts/ — Prompt templates with {{partial}} and {{variable}} substitutionsrc/templates/ — Bundled agents, commands, hooks, and settings for aspens add / doc init / save-tokens"type": "module" throughout; use import/export, never require()await init before calling parse() in graph-builderrunClaude() spawns claude -p with stream-json; always use --verbose flag with stream-jsonrunCodex() spawns codex exec --json --sandbox read-only --ask-for-approval never --ephemeral; returns { text, usage } matching runClaude interfacerunClaude/runCodex pipe prompts via stdin and respect drain when write() returns false; never rewrite to use args (shell length limits)parseFileOutput() restricts writes to .claude/ and AGENTS.md by default; accepts allowedPaths override for multi-target via getAllowedPaths(targets)allowedTools: ['Read', 'Glob', 'Grep']; never broaden without review{{name}} in prompt files resolves to src/prompts/partials/name.md first, then falls back to template variables.aspens.json. Customize is Claude-only (CliError if targets: ['codex'])CliError instead of calling process.exit(); caught at top level in bin/cli.jsgetGitRoot() resolves the actual git root; hooks, sync, and impact scope to the subdirectory project pathbin/ — CLI entry point (commander setup, CliError handler)src/commands/ — Command handlers (scan, doc-init, doc-impact, doc-sync, doc-graph, add, customize, save-tokens)src/lib/ — Core library modulessrc/prompts/ — Prompt templates + partialssrc/templates/ — Installable agents, commands, hooks, settingstests/ — Vitest test filesLast Updated: 2026-05-11
© aspenkit, 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 .agents/skills/base of aspenkit/aspens.
Open the folder on GitHubat commit 8dde826
aspens Project 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| aspens Project Conventions this skillaspenkit/aspens | 102 | — | ~1.6k | Automated safety check: Pass | MIT | |
| Octocode Code Researchbgauryy/octocode | 946 | — | ~1.5k | Automated safety check: Pass | MIT | |
| How Does This Work Explainercursor/plugins | 10k | 6 repos | ~771 | Automated safety check: Pass | None | |
| SPARC Methodologyruvnet/agentic-flow | 816 | 6 repos | ~6.3k | Automated safety check: Pass | None | |
| Electron Multi-Process ArchitectureiOfficeAI/AionUi | 33k | 1 repos | ~1.8k | Automated safety check: Pass | Apache-2.0 | |
| Code Reviewyaklang/yakit | 7.8k | — | ~1.4k | Automated safety check: Notes | AGPL-3.0 |
bgauryy/octocode
Researches code with evidence: traces callers, imports and cross-repo links, diagnoses failures and reports findings with exact file and line references and a confidence label.
cursor/plugins
Answers how-does-this-work and where-should-this-live questions by exploring the codebase with read-only subagents and writing an onboarding-depth explanation.
ruvnet/agentic-flow
Structures complex feature work into five planning-first phases (specification, pseudocode, architecture, refinement and completion) driven through claude-flow commands.
iOfficeAI/AionUi
Tells the agent where new code belongs in an Electron multi-process project and which APIs each process may use, with rules for new bridges, services, agents and workers.
yaklang/yakit
对 Yakit 仓库的代码改动做规范化 code review:按代码逻辑、TS 定义、UI 引用与 Props、CSS 样式、依赖版本、配置项六个维度审查,检查测试用例缺失,强制执行 tsc 类型检查与 vitest 测试验证,输出「结果汇总 / 明细解释 / 合并结论」三块报告,经用户确认后写入文件。当用户要求 review、审查、评审代码改动,或在提交、合并、提 PR…
sopaco/deepwiki-rs
AI-powered Rust documentation generation engine for comprehensive codebase analysis, C4 architecture diagrams, and automated technical documentation.
aspenkit/aspens
Injects a project's own skills and AGENTS.md content into generic bundled agent template files, adding a tech-stack line and real conventions without touching an agent's core logic.
aspenkit/aspens
Project context for the aspens CLI entry point: Commander wiring, the welcome screen, missing-hook warnings, CliError exit handling and the public programmatic exports.
aspenkit/aspens
Explains how the aspens generator routes output to Claude Code or Codex CLI targets and transforms generated skills and instruction files between their formats.
aspenkit/aspens
Context health analysis — freshness, domain coverage, hub surfacing, drift detection, LLM-powered interpretation, and auto-repair for generated agent context
aspenkit/aspens
Incremental skill updater that maps git diffs to affected skills and optionally auto-syncs via a post-commit hook
aspenkit/aspens
Static import analysis that builds dependency graphs, domain clusters, hub files, git churn hotspots, and file priority rankings
Categories
Orientation to the aspens codebase for agents working on the CLI itself: its Node.js stack, commands, module layout and debug settings. js (ESM) command-line tool that scans a repository, writes project-specific instructions and skills for Claude Code and Codex CLI, and keeps them current as the code changes. This skill orients an agent inside that repository.
aspens Project Conventions fits situations like: making a change to the aspens CLI and needing its command and module map; finding which lib module handles scanning, graphs, context or skill files; debugging an aspens run with the debug dump and timeout settings.
Run `npx skills add aspenkit/aspens --skill base -a claude-code`. Or copy the skill folder (.agents/skills/base in aspenkit/aspens) into .claude/skills/base in your project. Claude Code loads it when a task matches its description.
Run `npx skills add aspenkit/aspens --skill base -a codex`. Or copy the skill folder (.agents/skills/base in aspenkit/aspens) into .agents/skills/base 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 aspenkit/aspens --skill base -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/base, .gemini/skills/base, .github/skills/base and .opencode/skills/base in your project.
Going by SKILL.md and its folder, aspens Project Conventions needs the command-line tools its instructions call (npm, codex, node and claude). Our summary lists: A checkout of the aspens repository; Node.js 20 or later.
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 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.
aspens Project Conventions is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.6k tokens (SKILL.md is roughly 6.4k 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 aspens Project Conventions: Octocode Code Research (bgauryy/octocode, 946 stars), How Does This Work Explainer (cursor/plugins, 10k stars), SPARC Methodology (ruvnet/agentic-flow, 816 stars) and Electron Multi-Process Architecture (iOfficeAI/AionUi, 33k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
aspenkit (a GitHub organization) maintains it in aspenkit/aspens, which has 102 GitHub stars. The repository holds 12 skills in this directory. The repository was last updated on September 12, 2026.
Source: aspenkit/aspens on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.