mirror of
https://github.com/unclecatvn/agent-skills.git
synced 2026-09-14 20:53:17 +08:00
Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 717b4dc3d2 | |||
| 6c9a50acab |
@@ -7,14 +7,14 @@
|
||||
},
|
||||
"metadata": {
|
||||
"description": "Domain-specific skills and specialized agents for Odoo development, code review, and professional workflows",
|
||||
"version": "1.0.16"
|
||||
"version": "1.0.17"
|
||||
},
|
||||
"plugins": [
|
||||
{
|
||||
"name": "agent-skills",
|
||||
"source": "./",
|
||||
"description": "Odoo 16-19 skill packs, the odoo-workflow pre-code gate, Odoo commit style, code review, flow diagrams, slide decks, and the Odoo review/tracer agents",
|
||||
"version": "1.0.16",
|
||||
"version": "1.0.17",
|
||||
"category": "development",
|
||||
"keywords": [
|
||||
"odoo",
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"$schema": "https://json.schemastore.org/claude-plugin.json",
|
||||
"name": "agent-skills",
|
||||
"version": "1.0.16",
|
||||
"version": "1.0.17",
|
||||
"description": "Domain-specific skills and agents for Odoo development, code review, and more",
|
||||
"author": {
|
||||
"name": "UncleCat",
|
||||
@@ -15,9 +15,5 @@
|
||||
"python",
|
||||
"code-review",
|
||||
"development"
|
||||
],
|
||||
"agents": [
|
||||
"./agents/odoo-code-review/SKILL.md",
|
||||
"./agents/odoo-code-tracer/SKILL.md"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -2,6 +2,19 @@
|
||||
|
||||
All notable changes to this project will be documented in this file.
|
||||
|
||||
## [1.0.17]
|
||||
|
||||
### Release Description
|
||||
Makes the Odoo review and tracer agents actually load from the Claude Code plugin. Both lived at `agents/<name>/SKILL.md`, which the plugin loader never scans, and `plugin.json` listed them under an `agents` key that replaces default discovery instead of adding to it - so `claude plugin details agent-skills` reported `Agents (0)` while all ten skills loaded fine. The agents are now flat files next to `planner.md`, discovered the same way.
|
||||
|
||||
### Fixed
|
||||
- `agents/odoo-code-review.md`, `agents/odoo-code-tracer.md` - moved out of per-agent directories (`git mv` from `<name>/SKILL.md`); the plugin loader only reads flat `.md` files in `agents/`.
|
||||
- `.claude-plugin/plugin.json` - dropped the `agents` key; an explicit list replaces default discovery and did not load these files.
|
||||
|
||||
### Changed
|
||||
- `tests/test-skills.js` - validates flat agent files as well as skill directories.
|
||||
- `README.md` - agent links and the project-structure tree follow the new paths.
|
||||
|
||||
## [1.0.16]
|
||||
|
||||
### Release Description
|
||||
|
||||
@@ -198,8 +198,8 @@ Specialized agents that act as senior technical leads:
|
||||
|
||||
| Agent | What it does |
|
||||
|-------|--------------|
|
||||
| **[Odoo Code Review](agents/odoo-code-review/SKILL.md)** | Reviews Odoo code with scoring and structured feedback. Version-aware (16 / 17 / 18 / 19). |
|
||||
| **[Odoo Code Tracer](agents/odoo-code-tracer/SKILL.md)** | Traces execution flow from an entry point through the call graph. Version-aware (16 / 17 / 18 / 19). |
|
||||
| **[Odoo Code Review](agents/odoo-code-review.md)** | Reviews Odoo code with scoring and structured feedback. Version-aware (16 / 17 / 18 / 19). |
|
||||
| **[Odoo Code Tracer](agents/odoo-code-tracer.md)** | Traces execution flow from an entry point through the call graph. Version-aware (16 / 17 / 18 / 19). |
|
||||
| **[Planner](agents/planner.md)** | Breaks down complex features into actionable implementation steps |
|
||||
|
||||
### Rules — Coding Standards
|
||||
@@ -253,8 +253,8 @@ agent-skills/
|
||||
│ ├── code-review/ # Code review workflow
|
||||
│ └── slide/ # HTML/React slide decks
|
||||
├── agents/
|
||||
│ ├── odoo-code-review/ # Version-aware Odoo reviewer
|
||||
│ ├── odoo-code-tracer/ # Version-aware call-graph tracer
|
||||
│ ├── odoo-code-review.md # Version-aware Odoo reviewer
|
||||
│ ├── odoo-code-tracer.md # Version-aware call-graph tracer
|
||||
│ └── planner.md # Feature planning agent
|
||||
├── rules/ # Coding style and security
|
||||
├── bin/ # CLI (`agent-skills`)
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@unclecat/agent-skills-cli",
|
||||
"version": "1.0.16",
|
||||
"version": "1.0.17",
|
||||
"description": "CLI and docs for installing agent skills by version.",
|
||||
"bin": {
|
||||
"agent-skills": "bin/agent-skills.js"
|
||||
|
||||
+11
-6
@@ -58,17 +58,22 @@ function readFrontmatter(filePath) {
|
||||
}
|
||||
|
||||
function validateSkillDir(dir, label) {
|
||||
const entries = fs
|
||||
.readdirSync(dir, { withFileTypes: true })
|
||||
.filter((e) => e.isDirectory());
|
||||
const entries = fs.readdirSync(dir, { withFileTypes: true });
|
||||
// A skill lives in <name>/SKILL.md; a plugin agent is a flat <name>.md
|
||||
// (the plugin loader does not scan agents/<name>/SKILL.md).
|
||||
const paths = [
|
||||
...entries.filter((e) => e.isDirectory()).map((e) => path.join(dir, e.name, "SKILL.md")),
|
||||
...entries
|
||||
.filter((e) => e.isFile() && e.name.endsWith(".md"))
|
||||
.map((e) => path.join(dir, e.name)),
|
||||
];
|
||||
|
||||
if (entries.length === 0) {
|
||||
if (paths.length === 0) {
|
||||
warn(`${label}/ is empty`);
|
||||
return;
|
||||
}
|
||||
|
||||
for (const entry of entries) {
|
||||
const skillPath = path.join(dir, entry.name, "SKILL.md");
|
||||
for (const skillPath of paths) {
|
||||
const rel = path.relative(ROOT, skillPath);
|
||||
if (!fs.existsSync(skillPath)) {
|
||||
fail(`missing ${rel}`);
|
||||
|
||||
Reference in New Issue
Block a user