Skip to content

Commit 921f30c

Browse files
ANcpLuaclaude
andauthored
fix: ground-up lint cleanup — 181 violations → 0, merge redundant code-review skill (#137)
Markdownlint cleanup across 69 files (formatting only, no content changes): - MD032 blanks-around-lists, MD013 line-length, MD031 blanks-around-fences - MD040 code-fence-language, MD022 blanks-after-headings, MD028 blockquote-blanks - Added .markdownlint.jsonc project config and updated .markdownlintignore feature-dev 1.1.0 → 1.2.0: - Merged redundant code-review skill into /review command (95% identical) - Severity table, checklist, and vulnerability patterns now in single entry point - Deleted skills/code-review/ directory Validation: PASSED 0 failures, 0 warnings (first fully clean run) Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 6a7f43a commit 921f30c

34 files changed

+347
-187
lines changed

.claude-plugin/marketplace.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
"url": "https://github.com/ANcpLua"
66
},
77
"metadata": {
8-
"description": "Claude Code plugin marketplace: 8 plugins, 23 commands, 6 skills, 14 agents. Multi-agent orchestration, cognitive amplification, OpenTelemetry docs, and .NET build enforcement."
8+
"description": "Claude Code plugin marketplace: 8 plugins, 23 commands, 5 skills, 14 agents. Multi-agent orchestration, cognitive amplification, OpenTelemetry docs, and .NET build enforcement."
99
},
1010
"plugins": [
1111
{
@@ -35,7 +35,7 @@
3535
{
3636
"name": "feature-dev",
3737
"description": "Guided feature development with specialized agents for codebase exploration, architecture design, code review, and quality assurance.",
38-
"version": "1.1.0",
38+
"version": "1.2.0",
3939
"source": "./plugins/feature-dev"
4040
},
4141
{

.markdownlint.jsonc

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
{
2+
// ancplua-claude-plugins markdownlint configuration
3+
"default": true,
4+
5+
// MD013: Line length — 120 for our files, disabled for CHANGELOG (long entries are fine)
6+
"MD013": {
7+
"line_length": 120,
8+
"heading_line_length": 120,
9+
"code_block_line_length": 200,
10+
"tables": false
11+
},
12+
13+
// MD024: Duplicate headings — allowed in CHANGELOG (### Added, ### Fixed per version)
14+
"MD024": {
15+
"siblings_only": true
16+
},
17+
18+
// MD004: Unordered list style — dashes
19+
"MD004": {
20+
"style": "dash"
21+
},
22+
23+
// MD029: Ordered list prefix — ordered (1/2/3)
24+
"MD029": {
25+
"style": "ordered"
26+
},
27+
28+
// MD050: Strong style — asterisks
29+
"MD050": {
30+
"style": "asterisk"
31+
},
32+
33+
// MD060: Table column style — disabled (too noisy for our mixed table formats)
34+
"MD060": false,
35+
36+
// MD041: First line heading — disabled (hookify .local.md files have YAML frontmatter)
37+
"MD041": false
38+
}

.markdownlintignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,8 @@ plugins/otelwiki/docs/
44
# Append-only history — reformatting past entries has no value
55
CHANGELOG.md
66

7+
# Blog post content
8+
Claude Code Agent Teams*.md
9+
710
# Node modules
811
node_modules/

CHANGELOG.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,23 @@ and the project follows [Semantic Versioning](https://semver.org/spec/v2.0.0.htm
88

99
### Fixed
1010

11+
- **markdownlint**: Ground-up cleanup — 181 violations → 0 across 69 files. MD032 (blanks-around-lists), MD013 (line-length), MD031 (blanks-around-fences), MD040 (code-fence-language), MD022 (blanks-after-headings), MD028 (blockquote-blanks), MD029 (ordered-list-prefix). Formatting only, no content changes
12+
13+
### Added
14+
15+
- **`.markdownlint.jsonc`**: Project-wide markdownlint configuration — line length 120, dashes for lists, asterisks for bold, MD060/MD041 disabled
16+
- **`.markdownlintignore`**: Added blog post exclusion pattern
17+
18+
### Removed
19+
20+
- **`feature-dev/skills/code-review`**: Deleted redundant skill — 95% identical to `/review` command. Merged severity table, checklist, and common vulnerability patterns into `/review` command. One entry point instead of two
21+
22+
### Changed
23+
24+
- **`feature-dev`**: Bumped 1.1.0 → 1.2.0. `/review` command now contains the full 6-step workflow, severity levels table, checklist, and common vulnerability patterns previously split across the skill and command
25+
26+
### Fixed
27+
1128
- **`hookify/rule_engine.py`**: Fixed PreToolUse deny putting message in `systemMessage` (user-only display) instead of `permissionDecisionReason` (the field Claude actually receives). Root cause of Claude never seeing hook guidance when tools are blocked. Also split PreToolUse/PostToolUse into separate branches with correct response formats per Claude Code hooks spec
1229
- **`hookify/hook_runner.py`**: Fixed error reporting — hookify crashes now use exit code 2 + stderr (Claude-visible) instead of `systemMessage` (user-only)
1330
- **`hookify/global-rules/mtp-smart-test-filtering`**: Rewrote rule message to be directive — shorter (8 lines vs 80) with explicit "pick one and retry" action items

CLAUDE.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,7 @@ but NOT conversation history. All context must be in the spawn prompt.
104104
See `docs/ARCHITECTURE.md` for the complete repository layout, plugin structure, and ecosystem diagram.
105105

106106
Key paths:
107+
107108
- Plugins: `plugins/<name>/` — 8 plugins (23 commands, 6 skills, 14 agents)
108109
- Rules (auto-loaded): `.claude/rules/`
109110
- Plugin registry: `.claude-plugin/marketplace.json`
@@ -595,7 +596,8 @@ You MUST NOT:
595596

596597
## 8. CI & Validation
597598

598-
See `docs/WORKFLOWS.md` for complete CI pipeline documentation, exact shell commands, and the cross-repo `trigger-docs.yml` workflow.
599+
See `docs/WORKFLOWS.md` for complete CI pipeline documentation, exact shell commands, and the
600+
cross-repo `trigger-docs.yml` workflow.
599601

600602
### Local Validation
601603

docs/ARCHITECTURE.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,8 @@ Plugins contribute to the agent's passive context via three layers (in load orde
108108
2. **`SKILL.md` frontmatter `description`** — loaded when skill is referenced
109109
3. **`hooks/hooks.json` SessionStart → `additionalContext`** — dynamic, computed at session start
110110

111-
Use SessionStart hooks when context must be computed at runtime (version detection, prior findings, project-specific routing). Use CLAUDE.md for stable rules. Use skill descriptions for task-routing cues.
111+
Use SessionStart hooks when context must be computed at runtime (version detection, prior findings,
112+
project-specific routing). Use CLAUDE.md for stable rules. Use skill descriptions for task-routing cues.
112113

113114
---
114115

@@ -130,7 +131,8 @@ CI mirrors the same checks via `.github/workflows/ci.yml`.
130131

131132
## 5. Design principles (SOLID for plugins)
132133

133-
See `.claude/rules/solid-principles.md` (auto-loaded at session start) for the full SOLID plugin design constraints including the plugin responsibility table.
134+
See `.claude/rules/solid-principles.md` (auto-loaded at session start) for the full SOLID plugin design
135+
constraints including the plugin responsibility table.
134136

135137
---
136138

0 commit comments

Comments
 (0)