{"_id":"@batoanng/ai","_rev":"2-efb39a21994e7a29df806236bbba0921","name":"@batoanng/ai","dist-tags":{"latest":"0.1.1"},"versions":{"0.1.0":{"name":"@batoanng/ai","version":"0.1.0","license":"MIT","_id":"@batoanng/ai@0.1.0","maintainers":[{"name":"batoanng","email":"michael.batoan.nguyen@gmail.com"}],"bin":{"agents":"bin/agents.js","skills":"bin/skills.js"},"dist":{"shasum":"24a252192f4e340abe51f5129785ccbd4754e0b9","tarball":"https://registry.npmjs.org/@batoanng/ai/-/ai-0.1.0.tgz","fileCount":51,"integrity":"sha512-+9uzgz2LUchzbLThH5WjdlzQyWPZ3YIi/ByOCdMl9pyh3+DgLFOQRj4GeJoeYvvC3bHrupkR4/X/qOhSlgGc2Q==","signatures":[{"sig":"MEUCIQCoKJDEzTNtvrJz2IoL/WSvHGVwWsnnL8OxHnY5jIqLLAIgRPJMU0VR3ri+awsyWPNJa/vE+24wNZWz/gC15Pu/Vsg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":168457},"engines":{"node":">=18"},"gitHead":"f319c9959b54920655a9b72c5bc47267aa70138d","scripts":{"test":"node --test"},"_npmUser":{"name":"batoanng","email":"michael.batoan.nguyen@gmail.com"},"_npmVersion":"11.6.0","description":"Install reusable AI coding skills and agents into a project.","directories":{},"_nodeVersion":"24.9.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ai_0.1.0_1777281607443_0.2491184140278313","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@batoanng/ai","version":"0.1.1","description":"Install reusable AI coding skills and agents into a project.","license":"MIT","publishConfig":{"access":"public"},"bin":{"agents":"bin/agents.js","skills":"bin/skills.js"},"scripts":{"test":"node --test"},"engines":{"node":">=18"},"_id":"@batoanng/ai@0.1.1","gitHead":"3d6c2939229654746b293113dda04453778029a7","_nodeVersion":"24.9.0","_npmVersion":"11.6.0","dist":{"integrity":"sha512-SQjppj57g1scXWvrZ69WFSdKhoY6yLySmDTDPZxZkhmZb5uJ8WgJMv7Lu20uCfyWbkLk03/R/Iba7iR3HB4Eag==","shasum":"cf82b9b347677b3f8d1bb2c35b4123729b412910","tarball":"https://registry.npmjs.org/@batoanng/ai/-/ai-0.1.1.tgz","fileCount":51,"unpackedSize":168699,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIDzcO4oZB07QpEZ7iAv33Nm+we1k4QSIm/mXAM3vw6rdAiEA54JryyapIePKhUatPXs53CVUe+oASoSb8aT15yU3jsQ="}]},"_npmUser":{"name":"batoanng","email":"michael.batoan.nguyen@gmail.com"},"directories":{},"maintainers":[{"name":"batoanng","email":"michael.batoan.nguyen@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ai_0.1.1_1777282340134_0.9787479593523174"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-27T09:20:07.346Z","modified":"2026-04-27T09:32:20.402Z","0.1.0":"2026-04-27T09:20:07.577Z","0.1.1":"2026-04-27T09:32:20.283Z"},"license":"MIT","description":"Install reusable AI coding skills and agents into a project.","maintainers":[{"name":"batoanng","email":"michael.batoan.nguyen@gmail.com"}],"readme":"# ai-agent\n\n`ai-agent` is a prompt package for installing reusable AI coding **skills** and **agents** into a project.\n\n- Use a **skill** for a focused workflow, such as removing unnecessary React Effects, debugging TypeScript, or applying TDD.\n- Use an **agent** for a broader working role, such as code review, architecture, or simplification.\n- Install one item when a project needs a specific workflow. Install all items when bootstrapping a project with the full prompt toolkit.\n\n## Install With `@batoanng/ai`\n\nThe package exposes separate `skills` and `agents` commands through the `@batoanng/ai` npm package:\n\n```bash\nnpx -p @batoanng/ai skills add <skill-slug>\nnpx -p @batoanng/ai skills add -a\nnpx -p @batoanng/ai agents add <agent-slug>\nnpx -p @batoanng/ai agents add -a\n```\n\n## Installing Skills\n\nInstall one skill into the current project:\n\n```bash\nnpx -p @batoanng/ai skills add react-avoid-use-effect\n```\n\nInstall every bundled skill:\n\n```bash\nnpx -p @batoanng/ai skills add -a\n```\n\nSkills are installed directly under the current folder:\n\n```text\n./<skill-slug>/\n```\n\nTo install into Codex's project-local skill folder, run the command from `.codex/skills`.\n\nEach skill install includes `SKILL.md`, any supporting `references/`, and one provider-specific reference file.\n\n### Provider Selection\n\nSkill installs default to OpenAI:\n\n```bash\nnpx -p @batoanng/ai skills add react-avoid-use-effect\n```\n\nThe CLI logs the selected provider on every skill install:\n\n```text\nUsing provider: openai\n```\n\nTo install the Claude reference instead:\n\n```bash\nnpx -p @batoanng/ai skills add react-avoid-use-effect --provider claude\n```\n\nAvailable providers:\n\n| Provider | Included skill reference |\n| --- | --- |\n| `openai` | `agents/openai.yaml` |\n| `claude` | `agents/claude.md` |\n\n## Installing Agents\n\nInstall one standalone agent:\n\n```bash\nnpx -p @batoanng/ai agents add code-reviewer\n```\n\nInstall every bundled agent:\n\n```bash\nnpx -p @batoanng/ai agents add -a\n```\n\nAgents are installed to:\n\n```text\n.claude/agents/<agent-slug>.md\n```\n\nStandalone agents are provider-independent. If `--provider` is passed to an agent command, the install still writes the same agent file and logs that provider selection is ignored.\n\n## Updating Existing Installs\n\nExisting installed skills and agents are skipped by default so local edits are preserved:\n\n```text\nSkipped react-avoid-use-effect: already exists at ./react-avoid-use-effect. Use --force to replace it.\n```\n\nUse `--force` to replace an existing install with the packaged version:\n\n```bash\nnpx -p @batoanng/ai skills add react-avoid-use-effect --force\nnpx -p @batoanng/ai agents add code-reviewer --force\n```\n\n## Bundled Skills\n\n| Skill | Group | Purpose |\n| --- | --- | --- |\n| `extract-enum` | `general` | Refactor repeated domain literals into a shared string enum when runtime reuse matters. |\n| `purposeful-logging` | `general` | Add, review, and reduce logs so each line has diagnostic value and the right signals become metrics or spans. |\n| `solid-typescript` | `general` | Apply practical SOLID pressure tests to TypeScript design without adding ceremony. |\n| `structure-types` | `general` | Organize and scale TypeScript types and interfaces by domain and reuse boundary. |\n| `test-driven-development` | `general` | Drive implementation through a red-green-refactor workflow. |\n| `typescript-debugging` | `general` | Debug TypeScript and JavaScript issues with verified source maps, intentional instrumentation, and root-cause-first fixes. |\n| `use-types-structures` | `general` | Prefer existing data structures from the `@batoanng/types` npm package and justify complexity choices. |\n| `extract-custom-hook` | `react` | Refactor duplicated React stateful logic into a focused custom Hook. |\n| `react-avoid-use-effect` | `react` | Remove unnecessary React Effects and replace them with React-first patterns. |\n\n## Bundled Agents\n\n| Agent | Purpose |\n| --- | --- |\n| `architect` | System design, scalability, and architecture trade-off analysis. |\n| `code-architect` | Feature-level implementation blueprints based on existing codebase patterns. |\n| `code-reviewer` | General code review for correctness, maintainability, and security. |\n| `code-simplifier` | Behavior-preserving simplification and cleanup of recently changed code. |\n| `database-reviewer` | Cross-database review for PostgreSQL, MySQL, and MongoDB with one consistent checklist for performance, schema, security, and operations. |\n| `tdd-guide` | Tests-first implementation guidance and coverage discipline. |\n| `typescript-debugger` | Debug TypeScript and JavaScript failures through reproduction, source-map validation, targeted instrumentation, and verified fixes. |\n| `typescript-reviewer` | TypeScript/JavaScript-focused review with emphasis on type safety and async correctness. |\n\n## Package Layout\n\n```text\n.\n├── agents/\n├── bin/\n├── config.toml\n├── skills/\n│   ├── general/\n│   └── react/\n├── src/\n├── test/\n├── README.md\n└── SPECS.md\n```\n\nSkill source folders follow this shape:\n\n```text\nskills/<group>/<skill>/\n├── SKILL.md\n├── agents/\n│   ├── claude.md\n│   └── openai.yaml\n└── references/\n```\n\n- `SKILL.md` is the canonical skill instruction file.\n- `agents/openai.yaml` is the OpenAI-facing skill reference.\n- `agents/claude.md` is the Claude-facing skill reference.\n- `references/` stores deeper supporting material used by the skill.\n\nStandalone agent guides live in `agents/`.\n\n## Configuration\n\nThe package currently includes top-level execution limits in `config.toml`:\n\n```toml\nmax_threads = 4\nmax_depth = 1\n```\n\n## Development\n\nRun the test suite:\n\n```bash\nnpm test\n```\n\nSee `SPECS.md` for the technical CLI contract.\n\n## Extending The Package\n\nTo add a new skill:\n\n1. Create `skills/<group>/<skill>/SKILL.md`.\n2. Add `skills/<group>/<skill>/agents/openai.yaml`.\n3. Add `skills/<group>/<skill>/agents/claude.md`.\n4. Add `references/` only if the skill needs deeper source material.\n5. Document the new skill in this README.\n\nTo add a new standalone agent:\n\n1. Add a new Markdown guide under `agents/`.\n2. Give it a clear role, scope, and operating checklist.\n3. Document it in this README.\n","readmeFilename":"README.md"}