manuelmauro/algonaut/use-arkouda
Claude Code and agent skill by manuelmauro/algonaut
- community
Checking that the SKILL.md file is still in the repository.
Find prior decisions and record new ones in a repo's ADR (Architecture Decision Record) collection using the arkouda CLI. Invoke any time you're about to make a non-trivial design, architecture, library, schema, or convention decision — check what was already decided before deciding, and capture the outcome afterwards.
Install
npx vskill@latest install manuelmauro/algonaut/use-arkoudaSKILL.md
Using arkouda
In repositories that record decisions as ADRs (Architecture Decision Records — Markdown files with YAML frontmatter, conventionally under docs/adr/), arkouda is the CLI for finding, reading, validating, and scaffolding them. Before you decide, check what's already been decided. After you decide, capture it.
If a repo has no ADR directory yet but the arkouda binary is installed, this skill is also the right one to reach for: arkouda new enforces the schema from the first file.
When to use
Reach for this skill any time you're about to make a non-trivial decision. Concretely:
- Before writing code that picks a library, framework, datastore, encoding, transport, or other "we now depend on X" commitment.
- Before changing a public interface, file layout, schema, naming convention, or directory structure.
- Before refactoring away from a pattern you didn't introduce — you may be about to undo a deliberate decision.
- When the user asks "did we ever decide on X?", "why is it done this way?", or otherwise touches motivation.
- When the user asks for a new ADR or to mark one superseded.
- Whenever you land in an unfamiliar repo with an ADR directory (commonly
docs/adr/, but not always — see below).
A 5-second arkouda list | xargs rg -i <topic> is cheaper than redoing a debate that's already in the file. If a relevant ADR exists, build on it, propose superseding it, or notice you don't need to decide at all.
Philosophy
Two principles shape arkouda's behaviour, and explain why some defaults look minimal:
- Defer to Unix tools. Arkouda earns subcommands only where standard shell tools (
rg,grep,cat,awk,xargs) cannot. Content search, full-file printing, counting, and slicing are left to the shell — the CLI emits structured output you compose with the rest of your toolbox. Hence: nosearch, no full-fileshow. - Decision-centric defaults.
arkouda listprints one ADR path per line (no header, no padding) so it pipes cleanly. The body of an ADR, for arkouda's purposes, is its## Decisionsection, soarkouda decision <id>defaults to that section's body — supporting sections (context,consequences,status, custom) are opt-in via--section.
The source rationale lives in arkouda's own repo, in the ADRs `defer-to-unix-tools` and `ls-style-list-and-decision`.
Where ADRs live
The location varies between repos. Don't hardcode docs/adr/ in pipelines — ask arkouda. Run `arkouda list` to get the actual ADR paths for the repo you're in.
Resolution order, in case you need to set or override the location:
--dir <path>flag (one-shot override, single directory).ADR_DIR=<path>environment variable (session override, single directory)..arkoudarc.tomlat the repo root (or any ancestor of the cwd) with adirs = [...]list — supports multiple directories, useful for monorepos:
``toml dirs = ["docs/adr", "services/billing/docs/adr"] ` Relative paths resolve against the config file's directory. arkouda list, check, and decision aggregate across all listed dirs; arkouda new` writes into the first one.
- Default:
docs/adr/.
Filenames are the ADR id with a .md suffix (e.g. use-postgres.md), but the directory varies — let arkouda list tell you.
Commands
Four subcommands, each doing something the shell can't:
- `arkouda list [--sort id|date|status] [-l]` — one ADR path per line. Pipe straight into
xargs/rg/cat/wc. With-l, headerlessID STATUS DATE PATH TITLEtable for human skimming. - `arkouda decision <id> [--section <name>]` — body of that ADR's
## Decisionsection.--section <name>picks any other heading (context,consequences,status, or custom). Errors if the section is missing. For the full file, resolve the path througharkouda listandcatit. - `arkouda check` — validates frontmatter, filenames, and required Markdown sections across the collection. Exit 0 clean, 1 on any error. Each error carries a code (E000–E010) and a fix hint.
- `arkouda new "<title>" [--id <slug>] [--status proposed|accepted|superseded|deprecated|rejected] [--abstract "<one-line summary of the decision>"]` — scaffold a new ADR with today's date. Default id is a slug from the title. The abstract should summarize what was decided, not just the topic.
Global flags: --dir <path> (also ADR_DIR), -q/--quiet. Run arkouda --help or arkouda <subcommand> --help for the authoritative surface.
There is intentionally no search subcommand and no full-file show — rg/grep and cat already do those.
One-liners
arkouda list is the path source — it's where the ADRs actually are in this repo.
Workflows
Before deciding — search what's already there:
After deciding — capture it:
Supersede an existing decision
- Resolve the path:
path=$(arkouda list | grep -F /<old-id>.md). cat "$path"to see the current frontmatter, then edit: changestatus: "superseded"and addsuperseded_by: "<new-id>".arkouda new "<New Title>"for the replacement.arkouda checkto confirm both files still validate.
ADR shape (what check enforces)
Required keys: id, title, abstract, status, date. Required body sections (case-insensitive H2): Status, Context, Decision, Consequences — from Michael Nygard's ADR template. Filename stem must equal the frontmatter id.
When check reports errors
Each diagnostic has a code; the hint usually tells you the exact fix.
- E001/E002 missing or empty required field → add the field with a real value.
- E003 invalid status → use one of the five valid values.
- E004 id is not a lowercase slug → letters, digits, single hyphens.
- E005 filename does not match id → rename to
<id>.md. - E006 invalid date → ISO
YYYY-MM-DDfor a real calendar day. - E007/E008 missing or wrong H1 → first heading must be
# <title>. - E009 missing required section → add the named
## Sectionheading. - E010 duplicate id across files → make ids unique.
What not to do
- Don't make a non-trivial decision without first checking existing ADRs.
- Don't hardcode
docs/adr/in pipelines — different repos put ADRs elsewhere via.arkoudarc.toml. Usearkouda listto discover the actual paths. - Don't write or edit ADR files freehand without running
arkouda checkafterwards — the schema is strict. - Don't invent statuses outside the five valid values; downstream tooling depends on them.
- Don't change a published ADR's
idafter creation; create a new ADR and mark the old onesupersededinstead. - Don't commit ADRs whose
arkouda checkfails — CI is likely to enforce it.
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewNot runA model review is scheduled for the next rescan.
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/use-arkouda/SKILL.md
Popularity
- Repository stars
- 70
- Repository forks
- 37
- 7-day trend score
- 21
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/manuelmauro/algonaut/use-arkouda)