@my-jenie/ai-tools
v0.2.1
Published
Skill library to make code based on user stories or bugs specs
Maintainers
Readme
Jenie AI tools
=============================
_ _
| | (_)
| | ___ _ __ _ ___
_ | |/ _ \ '_ \| |/ _ \
| |__| | __/ | | | | __/
\____/ \___|_| |_|_|\___|
=============================jenie is a proto skill library focused to work with small / medium development tasks, considering:
- Identify available tasks (user stories or bugs) and validate consistency using INVEST and 3C practices
- Implement validated tasks using TDD practices
Keep it simple, use
jeniein any case you need to implement a small / medium feature or fix a bug
Run jenie with no arguments at any time to see the command list.
Available skills
- prepare-for-wishes — loads global guidelines, analyzes the project's tech stack and conventions, then asks what to do
- list-tasks — paginates available tasks with descriptions
- analyze-task — validates a task against INVEST + 3C, checks correctness, assesses doability
- implement-task — verifies repo + validation recency, creates a feature branch, runs TDD, implements, lints, commits
About Jenie's conscience
Like I said, jenie's main goal is to work with not huge development taks, but is designed to follow Senior developer practices based on:
- Precision — respond to exactly what's asked: one clarifying question when the request is ambiguous, no unsolicited alternatives, no unrequested features, no speculative execution.
- Efficiency — cap context usage:
ls/grepbefore reading, skip files already in context, batch independent reads/writes/commits, keep output concise. - Safety — verify before acting: never assume a file or dependency exists, cite architectural claims as
file:line, ask explicit confirmation before destructive commands (rm -rf, force-push) or new dependencies, never commit secrets. - Formatting — no preamble or filler, structured markdown output, every response tagged with
[Active Agent: Role | Task: #ID].
When these conflict, priority is safety > precision > formatting > efficiency.
Supported languages
prepare-for-wishes recognizes a project's tech stack by looking for these build/manifest files:
- JavaScript / TypeScript —
package.json - Rust —
Cargo.toml - Python —
pyproject.toml - Ruby —
Gemfile - Go —
go.mod - C / C++ —
CMakeLists.txt
Any other stack still gets a basic analysis, but without dedicated framework/tooling detection.
If the developer already has codebase-memory-mcp configured as an MCP server, prepare-for-wishes prefers it automatically for a faster, richer analysis (158 languages, call graphs, hotspots) — this is optional and not a new requirement; the manifest-based detection above is the fallback when it isn't present.
Requirements
- Node.js >= 18
- OpenCode and/or Claude Code — the Claude Code installer shells out to the
claudeCLI, so it must be on yourPATH - Local folder for the tasks to be implemented, by default,
jeniewill look for thedocsfolder
Installation
npm install -g @my-jenie/ai-toolsProject structure
<project_root>/
├── docs/
│ ├── user-stories/ # user story task files
│ └── bugs/ # bug task files
└── .jenie/
├── technical-context.md # generated by prepare-for-wishes
└── .validation-registry.json # analyze-task validation resultsOpenCode
cd my-project
jenie install --opencode # repository level (current directory)OpenCode installs are always repository level — there's no --global option, since OpenCode looks for a config file per project.
The installer:
- Finds the nearest
opencode.json(or.jsonc), walking up from the current directory — creates one when none exists, and converts an existing.jsoncto.json. - Registers the plugin path in the config's
pluginarray (no-op if already present).
Restart OpenCode afterwards — plugins are loaded at startup.
How the commands appear: /jenie (entry point, defaults to prepare-for-wishes), /jenie prepare-for-wishes, /jenie list-tasks, /jenie analyze-task, /jenie implement-task.
Claude Code
cd my-project
jenie install --claude-code # repository level (current directory)
jenie install --claude-code --global # global (user scope, all projects)Without --global, the installer works at repository level: it writes extraKnownMarketplaces and enabledPlugins into ./.claude/settings.json. Commit that file and teammates get prompted to install the plugin automatically when they open the project. With --global, the plugin is installed at user scope for all projects and the current directory doesn't matter.
The installer:
- Ensures
.claude-plugin/plugin.jsonand.claude-plugin/marketplace.jsonexist in the package — created if missing; an existingmarketplace.jsongets the jenie entry merged in without touching other entries. - Registers the package directory as a plugin marketplace and installs
jenie@ai-toolsthrough theclaudeCLI. - Removes any legacy
.claude/skills/jenieinstall left by older versions (only after the plugin install succeeds).
Restart Claude Code afterwards (exit and run claude again) — plugins are discovered at startup.
How the commands appear: the command picker lists skills by their short name with the plugin as a label — /prepare-for-wishes (jenie), /list-tasks (jenie), /analyze-task (jenie), /implement-task (jenie). The namespaced form /jenie:<skill-name> also works when typed, but Claude Code only displays it when another plugin defines a skill with the same name.
Alternatively, without npm or the jenie CLI (requires the .claude-plugin/ manifests to be committed to the repo):
claude plugin marketplace add jersson/jenie-ai-tools
claude plugin install jenie@ai-toolsUninstall
jenie uninstall --opencode # repository level (current directory)
jenie uninstall --claude-code # repository level (current directory)
jenie uninstall --claude-code --global # global (user scope)The Claude Code variant uninstalls the plugin, removes the marketplace registration, and cleans up legacy installs.
Version
jenie --version # or jenie -v