docs: update AGENTS.md and README.md for rules system, remove beads
- Add rules/ directory documentation to both files - Update skill count from 25 to 15 modules - Remove beads references (issue tracking removed) - Update skills list with current active skills - Document flake.nix as proper Nix flake (not flake=false) - Add rules system integration section - Clean up sisyphus planning artifacts - Remove deprecated skills (memory, msteams, outlook)
This commit is contained in:
@@ -1 +0,0 @@
|
||||
{"instructions":[".opencode-rules/concerns/coding-style.md",".opencode-rules/concerns/naming.md",".opencode-rules/concerns/documentation.md",".opencode-rules/concerns/testing.md",".opencode-rules/concerns/git-workflow.md",".opencode-rules/concerns/project-structure.md"],"shellHook":"# Create/update symlink to AGENTS rules directory\nln -sfn /nix/store/wsqzf0z3hg8mhpq484f24fm72qp4k6sg-AGENTS/rules .opencode-rules\n\n# Generate opencode.json configuration file\ncat > opencode.json <<'OPENCODE_EOF'\n{\"$schema\":\"https://opencode.ai/config.json\",\"instructions\":[\".opencode-rules/concerns/coding-style.md\",\".opencode-rules/concerns/naming.md\",\".opencode-rules/concerns/documentation.md\",\".opencode-rules/concerns/testing.md\",\".opencode-rules/concerns/git-workflow.md\",\".opencode-rules/concerns/project-structure.md\"]}\nOPENCODE_EOF\n"}
|
||||
@@ -1 +0,0 @@
|
||||
{"instructions":[".opencode-rules/concerns/coding-style.md",".opencode-rules/concerns/naming.md",".opencode-rules/concerns/documentation.md",".opencode-rules/concerns/testing.md",".opencode-rules/concerns/git-workflow.md",".opencode-rules/concerns/project-structure.md",".opencode-rules/languages/python.md"],"shellHook":"# Create/update symlink to AGENTS rules directory\nln -sfn /nix/store/4li05383sgf4z0l6bxv8hmvgs600y56x-AGENTS/rules .opencode-rules\n\n# Generate opencode.json configuration file\ncat > opencode.json <<'OPENCODE_EOF'\n{\"$schema\":\"https://opencode.ai/config.json\",\"instructions\":[\".opencode-rules/concerns/coding-style.md\",\".opencode-rules/concerns/naming.md\",\".opencode-rules/concerns/documentation.md\",\".opencode-rules/concerns/testing.md\",\".opencode-rules/concerns/git-workflow.md\",\".opencode-rules/concerns/project-structure.md\",\".opencode-rules/languages/python.md\"]}\nOPENCODE_EOF\n"}
|
||||
@@ -1 +0,0 @@
|
||||
{"instructions":[".opencode-rules/concerns/coding-style.md",".opencode-rules/concerns/naming.md",".opencode-rules/concerns/documentation.md",".opencode-rules/concerns/testing.md",".opencode-rules/concerns/git-workflow.md",".opencode-rules/concerns/project-structure.md",".opencode-rules/languages/python.md",".opencode-rules/languages/typescript.md",".opencode-rules/languages/nix.md",".opencode-rules/languages/shell.md"],"shellHook":"# Create/update symlink to AGENTS rules directory\nln -sfn /nix/store/qzsdn3m85qwarpd43x8k28sja40r21p7-AGENTS/rules .opencode-rules\n\n# Generate opencode.json configuration file\ncat > opencode.json <<'OPENCODE_EOF'\n{\"$schema\":\"https://opencode.ai/config.json\",\"instructions\":[\".opencode-rules/concerns/coding-style.md\",\".opencode-rules/concerns/naming.md\",\".opencode-rules/concerns/documentation.md\",\".opencode-rules/concerns/testing.md\",\".opencode-rules/concerns/git-workflow.md\",\".opencode-rules/concerns/project-structure.md\",\".opencode-rules/languages/python.md\",\".opencode-rules/languages/typescript.md\",\".opencode-rules/languages/nix.md\",\".opencode-rules/languages/shell.md\"]}\nOPENCODE_EOF\n"}
|
||||
@@ -1 +0,0 @@
|
||||
{"instructions":[".opencode-rules/concerns/coding-style.md",".opencode-rules/concerns/naming.md",".opencode-rules/concerns/documentation.md",".opencode-rules/concerns/testing.md",".opencode-rules/concerns/git-workflow.md",".opencode-rules/concerns/project-structure.md",".opencode-rules/languages/python.md",".opencode-rules/frameworks/n8n.md"],"shellHook":"# Create/update symlink to AGENTS rules directory\nln -sfn /nix/store/55brjhy9m1vcgrnd100vmwf9bycjpzpi-AGENTS/rules .opencode-rules\n\n# Generate opencode.json configuration file\ncat > opencode.json <<'OPENCODE_EOF'\n{\"$schema\":\"https://opencode.ai/config.json\",\"instructions\":[\".opencode-rules/concerns/coding-style.md\",\".opencode-rules/concerns/naming.md\",\".opencode-rules/concerns/documentation.md\",\".opencode-rules/concerns/testing.md\",\".opencode-rules/concerns/git-workflow.md\",\".opencode-rules/concerns/project-structure.md\",\".opencode-rules/languages/python.md\",\".opencode-rules/frameworks/n8n.md\"]}\nOPENCODE_EOF\n"}
|
||||
@@ -1 +0,0 @@
|
||||
{"instructions":[".opencode-rules/concerns/coding-style.md",".opencode-rules/concerns/naming.md",".opencode-rules/concerns/documentation.md",".opencode-rules/concerns/testing.md",".opencode-rules/concerns/git-workflow.md",".opencode-rules/concerns/project-structure.md",".opencode-rules/languages/python.md",".opencode-rules/custom.md"],"shellHook":"# Create/update symlink to AGENTS rules directory\nln -sfn /nix/store/r8yfirsyyii9x05qd5kfdvzcqv7sx6az-AGENTS/rules .opencode-rules\n\n# Generate opencode.json configuration file\ncat > opencode.json <<'OPENCODE_EOF'\n{\"$schema\":\"https://opencode.ai/config.json\",\"instructions\":[\".opencode-rules/concerns/coding-style.md\",\".opencode-rules/concerns/naming.md\",\".opencode-rules/concerns/documentation.md\",\".opencode-rules/concerns/testing.md\",\".opencode-rules/concerns/git-workflow.md\",\".opencode-rules/concerns/project-structure.md\",\".opencode-rules/languages/python.md\",\".opencode-rules/custom.md\"]}\nOPENCODE_EOF\n"}
|
||||
@@ -1,153 +0,0 @@
|
||||
# Opencode Rules Nix Module - Manual QA Results
|
||||
|
||||
## Test Summary
|
||||
Date: 2025-02-17
|
||||
Module: `/home/m3tam3re/p/NIX/nixpkgs/lib/opencode-rules.nix`
|
||||
Test Type: Manual QA (nix eval)
|
||||
|
||||
---
|
||||
|
||||
## Scenario Results
|
||||
|
||||
### Scenario 1: Empty Config (Defaults Only)
|
||||
**Command**: `nix eval --impure --json --expr 'let pkgs = import <nixpkgs> {}; m3taLib = import /home/m3tam3re/p/NIX/nixpkgs/lib {lib = pkgs.lib;}; in m3taLib.opencode-rules.mkOpencodeRules { agents = /home/m3tam3re/p/AI/AGENTS; }'`
|
||||
|
||||
**Results**:
|
||||
- ✅ Valid JSON output
|
||||
- ✅ Has `$schema` field in embedded opencode.json
|
||||
- ✅ Has `instructions` field
|
||||
- ✅ Correct instruction count: 6 (default concerns only)
|
||||
|
||||
**Expected Instructions**:
|
||||
1. `.opencode-rules/concerns/coding-style.md`
|
||||
2. `.opencode-rules/concerns/naming.md`
|
||||
3. `.opencode-rules/concerns/documentation.md`
|
||||
4. `.opencode-rules/concerns/testing.md`
|
||||
5. `.opencode-rules/concerns/git-workflow.md`
|
||||
6. `.opencode-rules/concerns/project-structure.md`
|
||||
|
||||
---
|
||||
|
||||
### Scenario 2: Single Language (Python)
|
||||
**Command**: `nix eval --impure --json --expr 'let pkgs = import <nixpkgs> {}; m3taLib = import /home/m3tam3re/p/NIX/nixpkgs/lib {lib = pkgs.lib;}; in m3taLib.opencode-rules.mkOpencodeRules { agents = /home/m3tam3re/p/AI/AGENTS; languages = ["python"]; }'`
|
||||
|
||||
**Results**:
|
||||
- ✅ Valid JSON output
|
||||
- ✅ Has `$schema` field in embedded opencode.json
|
||||
- ✅ Has `instructions` field
|
||||
- ✅ Correct instruction count: 7 (6 concerns + 1 language)
|
||||
|
||||
**Expected Instructions**:
|
||||
- All 6 default concerns
|
||||
- `.opencode-rules/languages/python.md`
|
||||
|
||||
---
|
||||
|
||||
### Scenario 3: Multi-Language
|
||||
**Command**: `nix eval --impure --json --expr 'let pkgs = import <nixpkgs> {}; m3taLib = import /home/m3tam3re/p/NIX/nixpkgs/lib {lib = pkgs.lib;}; in m3taLib.opencode-rules.mkOpencodeRules { agents = /home/m3tam3re/p/AI/AGENTS; languages = ["python" "typescript" "nix" "shell"]; }'`
|
||||
|
||||
**Results**:
|
||||
- ✅ Valid JSON output
|
||||
- ✅ Has `$schema` field in embedded opencode.json
|
||||
- ✅ Has `instructions` field
|
||||
- ✅ Correct instruction count: 10 (6 concerns + 4 languages)
|
||||
|
||||
**Expected Instructions**:
|
||||
- All 6 default concerns
|
||||
- `.opencode-rules/languages/python.md`
|
||||
- `.opencode-rules/languages/typescript.md`
|
||||
- `.opencode-rules/languages/nix.md`
|
||||
- `.opencode-rules/languages/shell.md`
|
||||
|
||||
---
|
||||
|
||||
### Scenario 4: With Frameworks
|
||||
**Command**: `nix eval --impure --json --expr 'let pkgs = import <nixpkgs> {}; m3taLib = import /home/m3tam3re/p/NIX/nixpkgs/lib {lib = pkgs.lib;}; in m3taLib.opencode-rules.mkOpencodeRules { agents = /home/m3tam3re/p/AI/AGENTS; languages = ["python"]; frameworks = ["n8n"]; }'`
|
||||
|
||||
**Results**:
|
||||
- ✅ Valid JSON output
|
||||
- ✅ Has `$schema` field in embedded opencode.json
|
||||
- ✅ Has `instructions` field
|
||||
- ✅ Correct instruction count: 8 (6 concerns + 1 language + 1 framework)
|
||||
|
||||
**Expected Instructions**:
|
||||
- All 6 default concerns
|
||||
- `.opencode-rules/languages/python.md`
|
||||
- `.opencode-rules/frameworks/n8n.md`
|
||||
|
||||
---
|
||||
|
||||
### Scenario 5: Extra Instructions
|
||||
**Command**: `nix eval --impure --json --expr 'let pkgs = import <nixpkgs> {}; m3taLib = import /home/m3tam3re/p/NIX/nixpkgs/lib {lib = pkgs.lib;}; in m3taLib.opencode-rules.mkOpencodeRules { agents = /home/m3tam3re/p/AI/AGENTS; languages = ["python"]; extraInstructions = [".opencode-rules/custom.md"]; }'`
|
||||
|
||||
**Results**:
|
||||
- ✅ Valid JSON output
|
||||
- ✅ Has `$schema` field in embedded opencode.json
|
||||
- ✅ Has `instructions` field
|
||||
- ✅ Correct instruction count: 8 (6 concerns + 1 language + 1 custom)
|
||||
|
||||
**Expected Instructions**:
|
||||
- All 6 default concerns
|
||||
- `.opencode-rules/languages/python.md`
|
||||
- `.opencode-rules/custom.md`
|
||||
|
||||
---
|
||||
|
||||
## Content Quality Spot Checks
|
||||
|
||||
### 1. coding-style.md (Concern Rule)
|
||||
**Assessment**: ✅ High Quality
|
||||
- Clear critical rules with "Always/Never" directives
|
||||
- Good vs. bad code examples
|
||||
- Comprehensive coverage: formatting, patterns, error handling, type safety, function design, SOLID
|
||||
- Well-structured sections
|
||||
|
||||
### 2. python.md (Language Rule)
|
||||
**Assessment**: ✅ High Quality
|
||||
- Modern toolchain recommendations (uv, ruff, pyright, pytest, hypothesis)
|
||||
- Common idioms with practical examples
|
||||
- Anti-patterns with explanations
|
||||
- Project setup structure
|
||||
- Clear, actionable code snippets
|
||||
|
||||
### 3. n8n.md (Framework Rule)
|
||||
**Assessment**: ✅ High Quality
|
||||
- Concise workflow design principles
|
||||
- Clear naming conventions
|
||||
- Error handling patterns
|
||||
- Security best practices
|
||||
- Actionable testing guidelines
|
||||
|
||||
---
|
||||
|
||||
## Issues Encountered
|
||||
|
||||
### Socket File Issue
|
||||
**Issue**: `nix eval` failed with `error: file '/home/m3tam3re/p/AI/AGENTS/.beads/bd.sock' has an unsupported type`
|
||||
|
||||
**Workaround**: Temporarily moved `.beads` directory outside the AGENTS tree during testing
|
||||
|
||||
**Root Cause**: Nix attempts to evaluate/store the `agents` path recursively and encounters unsupported socket files (Unix domain sockets)
|
||||
|
||||
**Recommendation**: Consider adding `.beads` to `.gitignore` and excluding it from path evaluation if possible, or document this limitation for users
|
||||
|
||||
---
|
||||
|
||||
## Final Verdict
|
||||
|
||||
```
|
||||
Scenarios [5/5 pass] | VERDICT: OKAY
|
||||
```
|
||||
|
||||
### Summary
|
||||
- All 5 test scenarios executed successfully
|
||||
- All JSON outputs are valid and properly structured
|
||||
- All embedded `opencode.json` configurations have required `$schema` and `instructions` fields
|
||||
- Instruction counts match expected values for each scenario
|
||||
- Rule content quality is high across concern, language, and framework rules
|
||||
- Shell hook properly generates symlink and configuration file
|
||||
|
||||
### Notes
|
||||
- Socket file issue requires workaround (documented)
|
||||
- Module correctly handles default concerns, multiple languages, frameworks, and custom instructions
|
||||
- Code examples in rules are clear and actionable
|
||||
@@ -1,6 +0,0 @@
|
||||
=== Context Budget ===
|
||||
Concerns: 751
|
||||
Python: 224
|
||||
Total (concerns + python): 975
|
||||
Limit: 1500
|
||||
RESULT: PASS (under 1500)
|
||||
@@ -1 +0,0 @@
|
||||
[".opencode-rules/concerns/coding-style.md",".opencode-rules/concerns/naming.md",".opencode-rules/concerns/documentation.md",".opencode-rules/concerns/testing.md",".opencode-rules/concerns/git-workflow.md",".opencode-rules/concerns/project-structure.md",".opencode-rules/languages/python.md",".opencode-rules/languages/typescript.md",".opencode-rules/languages/nix.md",".opencode-rules/languages/shell.md",".opencode-rules/frameworks/n8n.md"]
|
||||
@@ -1,16 +0,0 @@
|
||||
=== Task 17 Integration Test ===
|
||||
|
||||
File Line Counts:
|
||||
163 /home/m3tam3re/p/AI/AGENTS/rules/concerns/coding-style.md
|
||||
149 /home/m3tam3re/p/AI/AGENTS/rules/concerns/documentation.md
|
||||
118 /home/m3tam3re/p/AI/AGENTS/rules/concerns/git-workflow.md
|
||||
105 /home/m3tam3re/p/AI/AGENTS/rules/concerns/naming.md
|
||||
82 /home/m3tam3re/p/AI/AGENTS/rules/concerns/project-structure.md
|
||||
134 /home/m3tam3re/p/AI/AGENTS/rules/concerns/testing.md
|
||||
129 /home/m3tam3re/p/AI/AGENTS/rules/languages/nix.md
|
||||
224 /home/m3tam3re/p/AI/AGENTS/rules/languages/python.md
|
||||
100 /home/m3tam3re/p/AI/AGENTS/rules/languages/shell.md
|
||||
150 /home/m3tam3re/p/AI/AGENTS/rules/languages/typescript.md
|
||||
42 /home/m3tam3re/p/AI/AGENTS/rules/frameworks/n8n.md
|
||||
1396 total
|
||||
RESULT: All 11 files present
|
||||
@@ -1,13 +0,0 @@
|
||||
=== Path Resolution Check ===
|
||||
OK: rules/concerns/coding-style.md exists
|
||||
OK: rules/concerns/naming.md exists
|
||||
OK: rules/concerns/documentation.md exists
|
||||
OK: rules/concerns/testing.md exists
|
||||
OK: rules/concerns/git-workflow.md exists
|
||||
OK: rules/concerns/project-structure.md exists
|
||||
OK: rules/languages/python.md exists
|
||||
OK: rules/languages/typescript.md exists
|
||||
OK: rules/languages/nix.md exists
|
||||
OK: rules/languages/shell.md exists
|
||||
OK: rules/frameworks/n8n.md exists
|
||||
RESULT: All paths resolve
|
||||
Reference in New Issue
Block a user