You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Automated audit: This issue was generated by NLPM, a natural language programming linter, running via claude-code-action. Please evaluate the findings on their merits.
About This Audit
NLPM is a natural language programming linter for Claude Code plugins. It applies a 100-point scoring rubric to NL artifacts (skills, agents, commands, hooks) and identifies structural bugs, missing required fields, broken references, and security patterns in executable surfaces.
Ars Contexta scored 96/100 — an excellent score. The plugin is mature, well-structured, and architecturally coherent. The findings below are minor structural gaps, not fundamental issues.
Bugs Found (10 total)
Priority 1 — Missing model declarations (9 files)
These skill-source files declare allowed-tools but omit the model field. Without it, Claude Code falls back to the ambient session model instead of the intended inference tier.
Fix: Added model: sonnet to each file's frontmatter, consistent with the convention already established in the skills/ meta-layer.
Priority 2 — Missing allowed-tools in knowledge-guide agent
agents/knowledge-guide.md reads ${CLAUDE_PLUGIN_ROOT}/reference/ files to back its methodology guidance but declares no allowed-tools. Without Read granted, those file reads fail at runtime.
Fix: Added allowed-tools: Read to the frontmatter.
Security Findings (5 total — no CRITICAL or HIGH)
Overall classification: CLEAR. The three MEDIUM findings are all standard hook patterns; none represent real attack surface in normal use.
MEDIUM — --no-verify in git commits (2 instances)
session-orient.sh:59 and auto-commit.sh:52 use git commit --no-verify. This is the standard pattern to prevent recursive hook invocation in PostToolUse hooks — no fix recommended. Documented as intentional.
MEDIUM — KEY regex injection in read_config.sh(PR submitted)
KEY was interpolated directly into grep -E without validation. Safe in current callers but a footgun for future ones.
Require execute permission before running reconcile.sh
Quality Issues (informational, no PRs)
28 vague quantifier instances across 17 files were flagged during scoring. Examples: "very similar content" (suggest: "≥80% lexical overlap"), "recent sessions" (suggest: "sessions from the last 7 days"). These are scoring deductions, not bugs — fixing them would raise individual skill scores but are not submitted as PRs per NLPM's contribution policy.
Ars Contexta is an impressively well-designed plugin. The methodology is coherent, the three-space architecture is consistently applied, cross-component references are clean, and the processing pipeline is fully specified. These findings are at the margins. Thank you for building and sharing it.
Activity