Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .claude-plugin/marketplace.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"$schema": "https://anthropic.com/claude-code/marketplace.schema.json",
"name": "context-engineering-kit",
"version": "2.1.0",
"version": "2.1.1",
"description": "Hand-crafted collection of advanced context engineering techniques and patterns with minimal token footprint focused on improving agent result quality.",
"owner": {
"name": "NeoLabHQ",
Expand Down Expand Up @@ -77,7 +77,7 @@
{
"name": "sdd",
"description": "Specification Driven Development workflow commands and agents, based on Github Spec Kit and OpenSpec. Uses specialized agents for effective context management and quality review.",
"version": "2.1.0",
"version": "2.1.1",
"author": {
"name": "Vlad Goncharov",
"email": "vlad.goncharov@neolab.finance"
Expand Down
26 changes: 13 additions & 13 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ context-engineering-kit/
│ └── <plugin-name>/ # Plugin documentation
│ └── README.md
├── specs/ # Feature specifications
├── Makefile # Development commands
├── justfile # Development commands
└── CONTRIBUTING.md # Contribution guidelines
```

Expand All @@ -31,12 +31,12 @@ code-review, customaize-agent, ddd, docs, git, kaizen, mcp, reflexion, sadd, sdd
## Development Commands

```bash
make help # Show all commands
make list-plugins # List plugins with versions
make sync-docs-to-plugins # Copy docs/plugins/*/README.md → plugins/*/README.md
make sync-plugins-to-docs # Copy plugins/*/README.md → docs/plugins/*/README.md
make set-version PLUGIN=name VERSION=x.y.z # Update plugin version
make set-marketplace-version VERSION=x.y.z # Update marketplace version
just help # Show all commands
just list-plugins # List plugins with versions
just sync-docs-to-plugins # Copy docs/plugins/*/README.md → plugins/*/README.md
just sync-plugins-to-docs # Copy plugins/*/README.md → docs/plugins/*/README.md
just set-version <name> <x.y.z> # Update plugin version
just set-marketplace-version <x.y.z> # Update marketplace version
```

## Key Development Rules
Expand All @@ -50,9 +50,9 @@ make set-marketplace-version VERSION=x.y.z # Update marketplace version

### When Creating/Modifying Plugins

- Use `make set-version PLUGIN=<name> VERSION=<x.y.z>` to update plugin versions consistently, do not modify manually.
- Use `make set-marketplace-version VERSION=<x.y.z>` to update the marketplace version, do not modify manually.
- Keep README.md in sync between `plugins/<name>/` and `docs/plugins/<name>/` using `make sync-docs-to-plugins` and `make sync-plugins-to-docs` commands. Do not update both manually.
- Use `just set-version <name> <x.y.z>` to update plugin versions consistently, do not modify manually.
- Use `just set-marketplace-version <x.y.z>` to update the marketplace version, do not modify manually.
- Keep README.md in sync between `plugins/<name>/` and `docs/plugins/<name>/` using `just sync-docs-to-plugins` and `just sync-plugins-to-docs` commands. Do not update both manually.
- Test plugins with Claude Code before committing using `plugins/customaize-agent:test-prompt` and `plugins/customaize-agent:test-skill` commands.

### When Adding New Skills or Commands
Expand All @@ -65,9 +65,9 @@ make set-marketplace-version VERSION=x.y.z # Update marketplace version
4. `docs/plugins/README.md` - Update Key Features for the plugin
5. `docs/resources/related-projects.md` - Add source project attribution if based on external work
6. `docs/resources/papers.md` - Add research papers if technique is based on academic research
7. Run `make sync-plugins-to-docs` to sync plugin README to docs/
8. Bump plugin version: `make set-version PLUGIN=<name> VERSION=<x.y.z>` (minor for features)
9. Bump marketplace version: `make set-marketplace-version VERSION=<x.y.z>`
7. Run `just sync-plugins-to-docs` to sync plugin README to docs/
8. Bump plugin version: `just set-version <name> <x.y.z>` (minor for features)
9. Bump marketplace version: `just set-marketplace-version <x.y.z>`

**Finding All References**: Before declaring documentation complete, search for all files referencing the plugin:

Expand Down
91 changes: 0 additions & 91 deletions Makefile

This file was deleted.

74 changes: 74 additions & 0 deletions justfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
# Plugin management commands

plugins := "code-review customaize-agent ddd docs git kaizen mcp reflexion sadd sdd tdd tech-stack fpf"
marketplace := ".claude-plugin/marketplace.json"

# Show all commands
help:
@just --list

# Copy README.md files from docs/plugins/ to respective plugins/ folders
sync-docs-to-plugins:
@echo "Syncing README.md files from docs/plugins/ to plugins/..."
@for plugin in {{plugins}}; do \
if [ -f "docs/plugins/$plugin/README.md" ]; then \
cp "docs/plugins/$plugin/README.md" "plugins/$plugin/README.md"; \
echo " Copied: docs/plugins/$plugin/README.md -> plugins/$plugin/README.md"; \
else \
echo " Skipped: docs/plugins/$plugin/README.md (not found)"; \
fi; \
done
@echo "Done."

# Copy README.md files from plugins/ to docs/plugins/ folders
sync-plugins-to-docs:
@echo "Syncing README.md files from plugins/ to docs/plugins/..."
@for plugin in {{plugins}}; do \
if [ -f "plugins/$plugin/README.md" ]; then \
mkdir -p "docs/plugins/$plugin"; \
cp "plugins/$plugin/README.md" "docs/plugins/$plugin/README.md"; \
echo " Copied: plugins/$plugin/README.md -> docs/plugins/$plugin/README.md"; \
else \
echo " Skipped: plugins/$plugin/README.md (not found)"; \
fi; \
done
@echo "Done."

# Set version for a specific plugin
set-version plugin version:
@if [ ! -f "plugins/{{plugin}}/.claude-plugin/plugin.json" ]; then \
echo "Error: Plugin '{{plugin}}' not found"; \
exit 1; \
fi
@echo "Updating version for plugin '{{plugin}}' to {{version}}..."
@# Update plugin.json
@jq '.version = "{{version}}"' "plugins/{{plugin}}/.claude-plugin/plugin.json" > "plugins/{{plugin}}/.claude-plugin/plugin.json.tmp" && \
mv "plugins/{{plugin}}/.claude-plugin/plugin.json.tmp" "plugins/{{plugin}}/.claude-plugin/plugin.json"
@echo " Updated: plugins/{{plugin}}/.claude-plugin/plugin.json"
@# Update marketplace.json
@jq '(.plugins[] | select(.name == "{{plugin}}")).version = "{{version}}"' "{{marketplace}}" > "{{marketplace}}.tmp" && \
mv "{{marketplace}}.tmp" "{{marketplace}}"
@echo " Updated: {{marketplace}}"
@echo "Done. Version set to {{version}} for plugin '{{plugin}}'"

# Set version for the marketplace
set-marketplace-version version:
@if [ ! -f "{{marketplace}}" ]; then \
echo "Error: Marketplace file '{{marketplace}}' not found"; \
exit 1; \
fi
@echo "Updating marketplace version to {{version}}..."
@jq '.version = "{{version}}"' "{{marketplace}}" > "{{marketplace}}.tmp" && \
mv "{{marketplace}}.tmp" "{{marketplace}}"
@echo " Updated: {{marketplace}}"
@echo "Done. Marketplace version set to {{version}}"

# List all available plugins
list-plugins:
@echo "Available plugins:"
@for plugin in {{plugins}}; do \
if [ -f "plugins/$plugin/.claude-plugin/plugin.json" ]; then \
version=$(jq -r '.version' "plugins/$plugin/.claude-plugin/plugin.json"); \
echo " $plugin (v$version)"; \
fi; \
done
2 changes: 1 addition & 1 deletion plugins/sdd/.claude-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "sdd",
"version": "2.1.0",
"version": "2.1.1",
"description": "Specification Driven Development workflow commands and agents, based on Github Spec Kit and OpenSpec. Uses specialized agents for effective context management and quality review.",
"author": {
"name": "Vlad Goncharov",
Expand Down
14 changes: 13 additions & 1 deletion plugins/sdd/skills/implement/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -306,7 +306,9 @@ Orchestrators who "quickly verify" = skip judge agents = quality collapse = fail

---

## CRITICAL Configuration Rules
## CRITICAL

### Configuration Rules

- Use `THRESHOLD_FOR_STANDARD_COMPONENTS` (default 4.0) for standard steps!
- Use `THRESHOLD_FOR_CRITICAL_COMPONENTS` (default 4.5) for steps marked as critical in task file!
Expand All @@ -317,6 +319,16 @@ Orchestrators who "quickly verify" = skip judge agents = quality collapse = fail
- **If `CONTINUE_MODE` is true: Skip to `RESUME_FROM_STEP` - do not re-implement already completed steps!**
- **If `REFINE_MODE` is true: Detect changed project files, map to steps, re-verify from `REFINE_FROM_STEP` - preserve user's fixes!**

### Execution & Evaluation Rules

- **Use foreground agents only**: Do not use background agents. Launch parallel agents when possible. Background agents constantly run in permissions issues and other errors.

Relaunch judge till you get valid results, of following happens:

- Reject Long Reports: If an agent returns a very long report instead of using the scratchpad as requested, reject the result. This indicates the agent failed to follow the "use scratchpad" instruction.
- Judge Score 5.0 is a Hallucination: If a judge returns a score of 5.0/5.0, treat it as a hallucination or lazy evaluation. Reject it and re-run the judge. Perfect scores are practically impossible in this rigorous framework.
- Reject Missing Scores: If a judge report is missing the numerical score, reject it. This indicates the judge failed to read or follow the rubric instructions.

---

## Overview
Expand Down
10 changes: 10 additions & 0 deletions plugins/sdd/skills/plan/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -337,6 +337,16 @@ Update each todo to `in_progress` when starting a phase and `completed` when jud
- **Task file must exist in `.specs/tasks/draft/` before running this command (unless `--refine` mode)!**
- **If `REFINE_MODE` is true: Detect changes via git diff, skip unchanged stages, pass user feedback to agents!**

### Execution & Evaluation Rules

- **Use foreground agents only**: Do not use background agents. Launch parallel agents when possible. Background agents constantly run in permissions issues and other errors.

Relaunch judge till you get valid results, of following happens:

- Reject Long Reports: If an agent returns a very long report instead of using the scratchpad as requested, reject the result. This indicates the agent failed to follow the "use scratchpad" instruction.
- Judge Score 5.0 is a Hallucination: If a judge returns a score of 5.0/5.0, treat it as a hallucination or lazy evaluation. Reject it and re-run the judge. Perfect scores are practically impossible in this rigorous framework.
- Reject Missing Scores: If a judge report is missing the numerical score, reject it. This indicates the judge failed to read or follow the rubric instructions.

## Workflow Execution

You MUST launch for each step a separate agent, instead of performing all steps yourself.
Expand Down