claude-dev-env 1.38.1 → 1.40.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CLAUDE.md +10 -36
- package/_shared/pr-loop/audit-reply-template.md +147 -0
- package/_shared/pr-loop/fix-protocol.md +25 -4
- package/_shared/pr-loop/gh-payloads.md +37 -50
- package/_shared/pr-loop/scripts/code_rules_gate.py +0 -60
- package/_shared/pr-loop/scripts/config/post_audit_thread_constants.py +199 -0
- package/_shared/pr-loop/scripts/config/reviews_disabled_constants.py +8 -0
- package/_shared/pr-loop/scripts/post_audit_thread.py +1242 -0
- package/_shared/pr-loop/scripts/preflight.py +129 -2
- package/_shared/pr-loop/scripts/reviews_disabled.py +59 -0
- package/_shared/pr-loop/scripts/tests/test_code_rules_gate.py +0 -19
- package/_shared/pr-loop/scripts/tests/test_post_audit_thread.py +1116 -0
- package/_shared/pr-loop/scripts/tests/test_post_audit_thread_constants.py +127 -0
- package/_shared/pr-loop/scripts/tests/test_preflight.py +41 -0
- package/_shared/pr-loop/scripts/tests/test_reviews_disabled.py +36 -0
- package/_shared/pr-loop/state-schema.md +1 -1
- package/agents/clean-coder.md +2 -2
- package/agents/pr-description-writer.md +150 -52
- package/bin/install.mjs +6 -7
- package/bin/install.test.mjs +8 -0
- package/commands/doc-gist.md +16 -0
- package/commands/plan.md +0 -2
- package/commands/review-plan.md +1 -1
- package/docs/CODE_RULES.md +122 -2
- package/docs/PR_DESCRIPTION_GUIDE.md +127 -64
- package/hooks/blocking/bot_mention_comment_blocker.py +75 -0
- package/hooks/blocking/code_rules_enforcer.py +1143 -129
- package/hooks/blocking/convergence_gate_blocker.py +130 -0
- package/hooks/blocking/destructive_command_blocker.py +74 -0
- package/hooks/blocking/gh_body_arg_blocker.py +30 -0
- package/hooks/blocking/md_to_html_blocker.py +119 -0
- package/hooks/blocking/pr_description_enforcer.py +57 -22
- package/hooks/blocking/test_bot_mention_comment_blocker.py +131 -0
- package/hooks/blocking/test_code_rules_enforcer.py +21 -0
- package/hooks/blocking/test_code_rules_enforcer_any_exempt_files.py +70 -0
- package/hooks/blocking/test_code_rules_enforcer_any_imports_and_cast.py +92 -0
- package/hooks/blocking/test_code_rules_enforcer_banned_import_alias.py +143 -0
- package/hooks/blocking/test_code_rules_enforcer_banned_prefixes.py +152 -0
- package/hooks/blocking/test_code_rules_enforcer_bare_except.py +120 -0
- package/hooks/blocking/test_code_rules_enforcer_boundary_types.py +175 -0
- package/hooks/blocking/test_code_rules_enforcer_cap_meta.py +0 -1
- package/hooks/blocking/test_code_rules_enforcer_collection_prefix.py +50 -0
- package/hooks/blocking/test_code_rules_enforcer_docstring_format.py +255 -0
- package/hooks/blocking/test_code_rules_enforcer_inline_tuple_string_magic.py +130 -0
- package/hooks/blocking/test_code_rules_enforcer_stub_implementations.py +141 -0
- package/hooks/blocking/test_code_rules_enforcer_test_branching.py +143 -0
- package/hooks/blocking/test_code_rules_enforcer_thin_wrapper_files.py +169 -0
- package/hooks/blocking/test_code_rules_enforcer_todo_markers.py +99 -0
- package/hooks/blocking/test_code_rules_enforcer_typed_dict_pairs.py +141 -0
- package/hooks/blocking/test_convergence_gate_blocker.py +63 -0
- package/hooks/blocking/test_destructive_command_blocker.py +146 -0
- package/hooks/blocking/test_destructive_command_blocker_no_verify.py +102 -0
- package/hooks/blocking/test_gh_body_arg_blocker.py +45 -0
- package/hooks/blocking/test_md_to_html_blocker.py +317 -0
- package/hooks/blocking/test_pr_description_enforcer.py +69 -8
- package/hooks/config/any_type_config.py +7 -0
- package/hooks/config/banned_identifiers_constants.py +11 -0
- package/hooks/config/blocking_check_limits.py +38 -0
- package/hooks/config/bot_mention_comment_blocker_constants.py +20 -0
- package/hooks/config/code_rules_enforcer_constants.py +53 -0
- package/hooks/config/convergence_branch_constants.py +9 -0
- package/hooks/config/doc_gist_auto_publish_constants.py +18 -0
- package/hooks/config/html_companion_constants.py +20 -0
- package/hooks/config/inline_tuple_string_magic_constants.py +22 -0
- package/hooks/config/pr_description_enforcer_constants.py +14 -0
- package/hooks/config/test_banned_identifiers_constants.py +17 -0
- package/hooks/hooks.json +28 -20
- package/hooks/pyproject.toml +69 -0
- package/hooks/validators/mypy_integration.py +47 -1
- package/hooks/validators/run_all_validators.py +3 -3
- package/hooks/validators/test_mypy_integration.py +50 -1
- package/hooks/workflow/doc_gist_auto_publish.py +144 -0
- package/hooks/workflow/md_to_html_companion.py +365 -0
- package/hooks/workflow/test_doc_gist_auto_publish.py +117 -0
- package/hooks/workflow/test_md_to_html_companion.py +452 -0
- package/package.json +1 -1
- package/rules/gh-body-file.md +2 -0
- package/scripts/Install-SweepEmptyDirs.ps1 +111 -0
- package/scripts/check.ps1 +106 -0
- package/scripts/config/timing.py +11 -0
- package/scripts/sweep_empty_dirs.py +138 -0
- package/scripts/sync_to_cursor/rules.py +1 -1
- package/scripts/test_sweep_empty_dirs.py +183 -0
- package/skills/_shared/pr-loop/prompts/pr-consistency-audit.xml +323 -0
- package/skills/_shared/pr-loop/scripts/_cli_utils.py +22 -0
- package/skills/_shared/pr-loop/scripts/_path_resolver.py +165 -0
- package/skills/_shared/pr-loop/scripts/_xml_utils.py +20 -0
- package/skills/_shared/pr-loop/scripts/build_audit_prompt.py +182 -0
- package/skills/_shared/pr-loop/scripts/build_fix_prompt.py +185 -0
- package/skills/_shared/pr-loop/scripts/config/__init__.py +0 -0
- package/skills/_shared/pr-loop/scripts/config/path_resolver_constants.py +78 -0
- package/skills/_shared/pr-loop/scripts/init_loop_state.py +135 -0
- package/skills/_shared/pr-loop/scripts/teardown_worktrees.py +175 -0
- package/skills/_shared/pr-loop/scripts/write_audit_outcomes.py +182 -0
- package/skills/_shared/pr-loop/scripts/write_fix_outcomes.py +206 -0
- package/skills/bugteam/CONSTRAINTS.md +21 -22
- package/skills/bugteam/EXAMPLES.md +3 -3
- package/skills/bugteam/PROMPTS.md +227 -67
- package/skills/bugteam/SKILL.md +132 -455
- package/skills/bugteam/reference/README.md +1 -1
- package/skills/bugteam/reference/audit-and-teammates.md +112 -39
- package/skills/bugteam/reference/audit-contract.md +4 -22
- package/skills/bugteam/reference/copilot-gap-analysis.md +8 -5
- package/skills/bugteam/reference/design-rationale.md +2 -2
- package/skills/bugteam/reference/github-pr-reviews.md +50 -57
- package/skills/bugteam/reference/obstacles/audit-assign-ids.md +13 -0
- package/skills/bugteam/reference/obstacles/audit-capture-excerpts.md +13 -0
- package/skills/bugteam/reference/obstacles/audit-walk-categories.md +13 -0
- package/skills/bugteam/reference/obstacles/audit-write-xml.md +13 -0
- package/skills/bugteam/reference/obstacles/fix-append-summary.md +13 -0
- package/skills/bugteam/reference/obstacles/fix-apply-fixes.md +13 -0
- package/skills/bugteam/reference/obstacles/fix-git-add-commit.md +13 -0
- package/skills/bugteam/reference/obstacles/fix-git-push.md +13 -0
- package/skills/bugteam/reference/obstacles/fix-post-reply.md +13 -0
- package/skills/bugteam/reference/obstacles/fix-publish-summary.md +13 -0
- package/skills/bugteam/reference/obstacles/fix-py-compile.md +13 -0
- package/skills/bugteam/reference/obstacles/fix-read-files.md +13 -0
- package/skills/bugteam/reference/obstacles/fix-resolve-thread.md +13 -0
- package/skills/bugteam/reference/obstacles/fix-test-suite.md +13 -0
- package/skills/bugteam/reference/obstacles/fix-violation-count.md +13 -0
- package/skills/bugteam/reference/obstacles/fix-write-xml.md +13 -0
- package/skills/bugteam/reference/team-setup.md +111 -9
- package/skills/bugteam/reference/teardown-publish-permissions.md +39 -8
- package/skills/bugteam/scripts/README.md +60 -0
- package/skills/bugteam/scripts/_claude_permissions_common.py +358 -0
- package/skills/bugteam/scripts/bugteam_code_rules_gate.py +976 -0
- package/skills/bugteam/scripts/bugteam_fix_hookspath.py +375 -0
- package/skills/bugteam/scripts/bugteam_preflight.py +328 -0
- package/skills/bugteam/scripts/config/bugteam_code_rules_gate_constants.py +25 -0
- package/skills/bugteam/scripts/config/bugteam_fix_hookspath_constants.py +26 -0
- package/skills/bugteam/scripts/config/bugteam_preflight_constants.py +35 -0
- package/skills/bugteam/scripts/config/claude_permissions_common_constants.py +20 -0
- package/skills/bugteam/scripts/config/probe_code_rules_enforcer_check_constants.py +12 -0
- package/skills/bugteam/scripts/config/windows_safe_rmtree_constants.py +7 -0
- package/skills/bugteam/scripts/grant_project_claude_permissions.py +175 -0
- package/skills/bugteam/scripts/probe_code_rules_enforcer_check.py +107 -0
- package/skills/bugteam/scripts/revoke_project_claude_permissions.py +220 -0
- package/skills/bugteam/scripts/test__claude_permissions_common.py +112 -0
- package/skills/bugteam/scripts/test_bugteam_code_rules_gate.py +400 -0
- package/skills/bugteam/scripts/test_bugteam_fix_hookspath.py +384 -0
- package/skills/bugteam/scripts/test_bugteam_preflight.py +309 -0
- package/skills/bugteam/scripts/test_claude_permissions_common.py +195 -0
- package/skills/bugteam/scripts/test_grant_project_claude_permissions.py +55 -0
- package/skills/bugteam/scripts/test_probe_code_rules_enforcer_check.py +76 -0
- package/skills/bugteam/scripts/test_revoke_project_claude_permissions.py +55 -0
- package/skills/bugteam/scripts/test_windows_safe_rmtree.py +108 -0
- package/skills/bugteam/scripts/windows_safe_rmtree.py +100 -0
- package/skills/bugteam/test_skill_additions.py +1 -11
- package/skills/code/SKILL.md +176 -0
- package/skills/copilot-review/SKILL.md +16 -0
- package/skills/doc-gist/SKILL.md +99 -0
- package/skills/doc-gist/references/examples/01-exploration-code-approaches.html +453 -0
- package/skills/doc-gist/references/examples/02-exploration-visual-designs.html +515 -0
- package/skills/doc-gist/references/examples/03-code-review-pr.html +638 -0
- package/skills/doc-gist/references/examples/04-code-understanding.html +491 -0
- package/skills/doc-gist/references/examples/05-design-system.html +629 -0
- package/skills/doc-gist/references/examples/06-component-variants.html +605 -0
- package/skills/doc-gist/references/examples/07-prototype-animation.html +455 -0
- package/skills/doc-gist/references/examples/08-prototype-interaction.html +396 -0
- package/skills/doc-gist/references/examples/09-slide-deck.html +592 -0
- package/skills/doc-gist/references/examples/10-svg-illustrations.html +492 -0
- package/skills/doc-gist/references/examples/11-status-report.html +528 -0
- package/skills/doc-gist/references/examples/12-incident-report.html +596 -0
- package/skills/doc-gist/references/examples/13-flowchart-diagram.html +395 -0
- package/skills/doc-gist/references/examples/14-research-feature-explainer.html +381 -0
- package/skills/doc-gist/references/examples/15-research-concept-explainer.html +368 -0
- package/skills/doc-gist/references/examples/16-implementation-plan.html +702 -0
- package/skills/doc-gist/references/examples/17-pr-writeup.html +595 -0
- package/skills/doc-gist/references/examples/18-editor-triage-board.html +573 -0
- package/skills/doc-gist/references/examples/19-editor-feature-flags.html +663 -0
- package/skills/doc-gist/references/examples/20-editor-prompt-tuner.html +722 -0
- package/skills/doc-gist/references/examples/README.md +5 -0
- package/skills/doc-gist/scripts/config/__init__.py +0 -0
- package/skills/doc-gist/scripts/config/gist_upload_constants.py +16 -0
- package/skills/doc-gist/scripts/gist_upload.py +177 -0
- package/skills/doc-gist/scripts/test_gist_upload.py +51 -0
- package/skills/findbugs/SKILL.md +96 -2
- package/skills/monitor-open-prs/SKILL.md +14 -32
- package/skills/monitor-open-prs/test_skill_contract.py +0 -11
- package/skills/pr-consistency-audit/SKILL.md +112 -0
- package/skills/pr-consistency-audit/reference/detection-rules.md +96 -0
- package/skills/pr-consistency-audit/reference/illustrations.md +78 -0
- package/skills/pr-converge/SKILL.md +229 -23
- package/skills/pr-converge/config/__init__.py +0 -0
- package/skills/pr-converge/config/constants.py +63 -0
- package/skills/pr-converge/reference/convergence-gates.md +138 -44
- package/skills/pr-converge/reference/examples.md +43 -11
- package/skills/pr-converge/reference/fix-protocol.md +6 -5
- package/skills/pr-converge/reference/ground-rules.md +5 -3
- package/skills/pr-converge/reference/multi-pr-orchestration.md +44 -19
- package/skills/pr-converge/reference/obstacles/fix-post-replies.md +13 -0
- package/skills/pr-converge/reference/obstacles/fix-publish-summary.md +13 -0
- package/skills/pr-converge/reference/obstacles/fix-push.md +13 -0
- package/skills/pr-converge/reference/obstacles/fix-read-filelines.md +13 -0
- package/skills/pr-converge/reference/obstacles/fix-reset-state.md +13 -0
- package/skills/pr-converge/reference/obstacles/fix-resolve-threads.md +13 -0
- package/skills/pr-converge/reference/obstacles/fix-spawn-clean-coder.md +13 -0
- package/skills/pr-converge/reference/obstacles/fix-stage-commit.md +13 -0
- package/skills/pr-converge/reference/obstacles/fix-trigger-bugbot.md +13 -0
- package/skills/pr-converge/reference/obstacles/fix-write-test.md +13 -0
- package/skills/pr-converge/reference/per-tick.md +107 -31
- package/skills/pr-converge/reference/state-schema.md +22 -1
- package/skills/pr-converge/reference/stop-conditions.md +9 -7
- package/skills/pr-converge/scripts/README.md +34 -46
- package/skills/pr-converge/scripts/check_bugbot_ci.py +279 -0
- package/skills/pr-converge/scripts/check_convergence.py +497 -0
- package/skills/pr-converge/scripts/check_pending_reviews.py +154 -0
- package/skills/pr-converge/scripts/config/pr_converge_constants.py +118 -0
- package/skills/pr-converge/scripts/fetch_copilot_reviews.py +134 -0
- package/skills/pr-converge/scripts/post_fix_reply.py +168 -0
- package/skills/pr-converge/scripts/test_check_bugbot_ci.py +312 -0
- package/skills/pr-converge/workflows/schedule-wakeup-loop.md +5 -12
- package/skills/qbug/SKILL.md +157 -27
- package/skills/session-log/SKILL.md +216 -114
- package/skills/session-tidy/SKILL.md +1 -1
- package/skills/skill-builder/SKILL.md +138 -56
- package/skills/skill-builder/references/delegation-map.md +72 -113
- package/skills/skill-builder/references/progressive-disclosure.md +122 -0
- package/skills/skill-builder/references/self-audit-checklist.md +92 -0
- package/skills/skill-builder/references/skill-types.md +228 -0
- package/skills/skill-builder/references/thariq-x-post-skills.json +33 -0
- package/skills/skill-builder/templates/gap-analysis.md +15 -8
- package/skills/skill-builder/workflows/improve-skill.md +86 -57
- package/skills/skill-builder/workflows/new-skill.md +80 -168
- package/skills/skill-builder/workflows/polish-skill.md +78 -54
- package/skills/structure-prompt/SKILL.md +50 -0
- package/skills/structure-prompt/reference/adversarial-tuning.md +62 -0
- package/skills/structure-prompt/reference/block-classification.md +27 -0
- package/skills/structure-prompt/reference/canonical-case.md +48 -0
- package/skills/structure-prompt/reference/citation-depth.md +70 -0
- package/skills/structure-prompt/reference/cleanup.md +33 -0
- package/skills/structure-prompt/reference/constraints.md +33 -0
- package/skills/structure-prompt/reference/directives.md +37 -0
- package/skills/structure-prompt/reference/examples.md +72 -0
- package/skills/structure-prompt/reference/instantiation.md +51 -0
- package/skills/structure-prompt/reference/output-contract.md +72 -0
- package/skills/structure-prompt/reference/per-category.md +23 -0
- package/skills/structure-prompt/reference/persona.md +38 -0
- package/skills/structure-prompt/reference/research.md +33 -0
- package/skills/structure-prompt/reference/structure.md +28 -0
- package/agents/code-standards-agent.md +0 -93
- package/agents/groq-coder.md +0 -113
- package/agents/plan-executor.md +0 -226
- package/agents/project-docs-analyzer.md +0 -53
- package/agents/project-structure-organizer-agent.md +0 -72
- package/agents/skill-to-agent-converter.md +0 -370
- package/agents/skill-writer-agent.md +0 -470
- package/agents/user-docs-writer.md +0 -67
- package/agents/workflow-visual-documenter.md +0 -82
- package/commands/readability-review.md +0 -20
- package/hooks/mypy.ini +0 -2
- package/hooks/notification/attention_needed_notify.py +0 -71
- package/hooks/notification/claude_notification_handler.py +0 -67
- package/hooks/notification/notification_utils.py +0 -267
- package/hooks/notification/subagent_complete_notify.py +0 -381
- package/hooks/notification/test_attention_needed_notify.py +0 -47
- package/hooks/notification/test_claude_notification_handler.py +0 -54
- package/hooks/notification/test_notification_utils.py +0 -91
- package/hooks/notification/test_subagent_complete_notify.py +0 -79
- package/scripts/config/groq_bugteam_config.py +0 -230
- package/scripts/config/test_groq_bugteam_config.py +0 -83
- package/scripts/config/test_spec_implementer_prompt.py +0 -32
- package/scripts/groq_bugteam.README.md +0 -131
- package/scripts/groq_bugteam.py +0 -647
- package/scripts/groq_bugteam_dotenv.py +0 -40
- package/scripts/groq_bugteam_spec.py +0 -226
- package/scripts/test_groq_bugteam.py +0 -529
- package/scripts/test_groq_bugteam_apply_fix_from_spec.py +0 -426
- package/scripts/test_groq_bugteam_dotenv.py +0 -66
- package/scripts/test_groq_bugteam_spec.py +0 -338
- package/skills/bugteam/SKILL_EVALS.md +0 -309
- package/skills/dream/SKILL.md +0 -118
- package/skills/ingest/SKILL.md +0 -40
- package/skills/npm-creator/SKILL.md +0 -187
- package/skills/readability-review/SKILL.md +0 -127
- package/skills/resume-review/SKILL.md +0 -261
- package/skills/rule-audit/SKILL.md +0 -307
- package/skills/rule-creator/SKILL.md +0 -150
- package/skills/searching-obsidian-vault/SKILL.md +0 -131
- package/skills/skill-writer/REFERENCE.md +0 -284
- package/skills/skill-writer/SKILL.md +0 -222
- package/skills/tdd-team/SKILL.md +0 -128
|
@@ -1,261 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: resume-review
|
|
3
|
-
description: >-
|
|
4
|
-
Audit a resume for nitty-gritty offenses that bury signal. Resumes are
|
|
5
|
-
overviews scanned in 6-30 seconds, not detailed proof artifacts. This skill
|
|
6
|
-
identifies bullets that drift into workflow internals, multi-item technical
|
|
7
|
-
lists, library names, mechanism narration, or implementation detail, and
|
|
8
|
-
proposes tighter rewrites that keep the proof points (numbers, scope,
|
|
9
|
-
outcomes) while dropping the granular how-it-works text. Triggers:
|
|
10
|
-
"/resume-review", "review my resume", "audit this resume", "is my resume too
|
|
11
|
-
detailed", "tighten my resume bullets".
|
|
12
|
-
---
|
|
13
|
-
|
|
14
|
-
# Resume Review
|
|
15
|
-
|
|
16
|
-
A resume is an **overview**. Hiring managers scan a resume in 6-30 seconds on
|
|
17
|
-
first pass. Granular technical detail buries the signal. Stats, scope, and
|
|
18
|
-
quantified outcomes belong on the resume; workflow internals, multi-item
|
|
19
|
-
technical lists, and how-it-works narration belong in the interview.
|
|
20
|
-
|
|
21
|
-
## Source authority
|
|
22
|
-
|
|
23
|
-
Three established sources govern this skill. When a bullet violates one of
|
|
24
|
-
these principles, cite the source in the review comment.
|
|
25
|
-
|
|
26
|
-
- **Laszlo Bock**, *Work Rules!* (2015), Twelve Books, p. 71 (Bock served as
|
|
27
|
-
SVP People Operations at Google, 2006-2016): bullets describe "what you
|
|
28
|
-
accomplished, not what you did." Quantified outcomes beat task descriptions.
|
|
29
|
-
- **Steve Dalton**, *The 2-Hour Job Search* (2012), Ten Speed Press, Ch. 3:
|
|
30
|
-
hiring managers initially scan a resume in 6-30 seconds. Granular technical
|
|
31
|
-
detail buries the signal in that scan.
|
|
32
|
-
- **Lou Adler**, *Hire With Your Head* (4th ed., 2021), Wiley: bullets convey
|
|
33
|
-
**scope and impact**, not tools and tasks.
|
|
34
|
-
|
|
35
|
-
## The principle
|
|
36
|
-
|
|
37
|
-
Every bullet earns its place by carrying one of three things:
|
|
38
|
-
|
|
39
|
-
1. **Scope** — what surface area of work this covered (catalog size, team
|
|
40
|
-
size, user count, transaction volume, geographic reach).
|
|
41
|
-
2. **Impact** — the outcome the work produced (revenue, time saved, error
|
|
42
|
-
rate reduced, problem prevented, capability unlocked).
|
|
43
|
-
3. **Quantified proof** — a single number that anchors scope or impact and
|
|
44
|
-
makes the bullet harder to dismiss as boilerplate.
|
|
45
|
-
|
|
46
|
-
Bullets that describe the **mechanism** of how the work was done (workflow
|
|
47
|
-
steps, internal architecture, library choices, sequencing of operations) fail
|
|
48
|
-
the overview test. Move that content to the interview.
|
|
49
|
-
|
|
50
|
-
## Offense categories
|
|
51
|
-
|
|
52
|
-
The audit walks every bullet and flags any of these patterns. Each pattern
|
|
53
|
-
has a fix template.
|
|
54
|
-
|
|
55
|
-
### 1. Multi-item parenthetical lists
|
|
56
|
-
|
|
57
|
-
A parenthetical that enumerates 3+ named items (tools, systems, features,
|
|
58
|
-
sub-tasks).
|
|
59
|
-
|
|
60
|
-
> **Offender:** "Built and maintain three production Python automation
|
|
61
|
-
> systems (theme submission, theme exports, certification failure
|
|
62
|
-
> processing) backed by a shared utility library."
|
|
63
|
-
|
|
64
|
-
> **Fix:** Drop the parenthetical. Keep the count. "Built and maintain three
|
|
65
|
-
> production Python automations handling [scope]."
|
|
66
|
-
|
|
67
|
-
### 2. Workflow-step narration
|
|
68
|
-
|
|
69
|
-
The bullet describes the sequence of operations the work performs.
|
|
70
|
-
|
|
71
|
-
> **Offender:** "Manage Samsung's annual catalog-update cycle when 2,800+
|
|
72
|
-
> themes must each be updated, exported, and resubmitted one by one within a
|
|
73
|
-
> 1-2 month window."
|
|
74
|
-
|
|
75
|
-
> **Fix:** Drop the workflow steps. Keep the scope numbers. "Manage Samsung's
|
|
76
|
-
> annual catalog-update cycle: 2,800+ themes refreshed within a 1-2 month
|
|
77
|
-
> window."
|
|
78
|
-
|
|
79
|
-
### 3. Engineering-pattern jargon for non-engineering audience
|
|
80
|
-
|
|
81
|
-
Multiple named technical patterns in one bullet, written for an audience
|
|
82
|
-
that does not share the domain (e.g., infrastructure terms in an operations
|
|
83
|
-
or trust-and-safety resume).
|
|
84
|
-
|
|
85
|
-
> **Offender:** "Turn recurring failures into stronger error classification
|
|
86
|
-
> (transient vs. permanent), circuit breakers, and checkpoint/resume
|
|
87
|
-
> recovery."
|
|
88
|
-
|
|
89
|
-
> **Fix:** Replace the pattern enumeration with a single capability noun.
|
|
90
|
-
> "Turn recurring failures into reusable error-handling patterns so the same
|
|
91
|
-
> failure does not happen twice."
|
|
92
|
-
|
|
93
|
-
### 4. Mechanism narration
|
|
94
|
-
|
|
95
|
-
The bullet explains how a tool or system internally works.
|
|
96
|
-
|
|
97
|
-
> **Offender:** "Author and maintain pr-converge, a Claude Code skill that
|
|
98
|
-
> automates the pull request review-and-fix loop until reviewers converge on
|
|
99
|
-
> ready, with three open pull requests (11,000+ lines) actively extending
|
|
100
|
-
> it."
|
|
101
|
-
|
|
102
|
-
> **Fix:** State the outcome the skill produces. Drop the loop description.
|
|
103
|
-
> "Author and maintain pr-converge, an open-source Claude Code skill that
|
|
104
|
-
> drives draft pull requests to merge-ready autonomously."
|
|
105
|
-
|
|
106
|
-
### 5. Library or tool names embedded mid-bullet
|
|
107
|
-
|
|
108
|
-
A library, framework, or tool name appears inside a sentence about
|
|
109
|
-
capability. Library names belong in the dedicated Tools section, not in
|
|
110
|
-
capability bullets.
|
|
111
|
-
|
|
112
|
-
> **Offender:** "Implemented authenticated workflows end-to-end: account
|
|
113
|
-
> creation, token handling, local-first data with IndexedDB/Dexie, and
|
|
114
|
-
> conflict-aware sync between client and server."
|
|
115
|
-
|
|
116
|
-
> **Fix:** Drop the library names. State the capabilities. "Implemented
|
|
117
|
-
> authentication, local-first data persistence, and conflict-aware
|
|
118
|
-
> client-server sync end-to-end."
|
|
119
|
-
|
|
120
|
-
### 6. Redundant statistics
|
|
121
|
-
|
|
122
|
-
Two numbers in the same bullet that express the same quantity at different
|
|
123
|
-
granularities.
|
|
124
|
-
|
|
125
|
-
> **Offender:** "Roughly 30 new theme submissions per day (150 per week)."
|
|
126
|
-
|
|
127
|
-
> **Fix:** Pick one. The daily number is usually the strongest scan signal.
|
|
128
|
-
|
|
129
|
-
### 7. Implementation detail
|
|
130
|
-
|
|
131
|
-
Phrases that describe how the work was built rather than what it does.
|
|
132
|
-
|
|
133
|
-
> **Offender:** "Backed by a shared utility library, with zero manual
|
|
134
|
-
> intervention beyond starting the script."
|
|
135
|
-
|
|
136
|
-
> **Fix:** Drop the implementation phrase entirely. The capability statement
|
|
137
|
-
> should stand on its own.
|
|
138
|
-
|
|
139
|
-
### 8. Two-sentence bullets
|
|
140
|
-
|
|
141
|
-
A bullet that requires two sentences usually carries one bullet of scope and
|
|
142
|
-
one bullet of mechanism. The mechanism sentence should be removed, not
|
|
143
|
-
combined.
|
|
144
|
-
|
|
145
|
-
> **Offender:** "Author and maintain pr-converge, a Claude Code skill
|
|
146
|
-
> that... [first sentence describes what]. Recent work adds mergeability
|
|
147
|
-
> gates, GitHub Copilot reviewer integration, and post-convergence Copilot
|
|
148
|
-
> follow-up across three open pull requests (11,000+ lines)."
|
|
149
|
-
|
|
150
|
-
> **Fix:** Keep the capability sentence. Move the second sentence to a cover
|
|
151
|
-
> letter or interview talking point.
|
|
152
|
-
|
|
153
|
-
## Review protocol
|
|
154
|
-
|
|
155
|
-
Walk this protocol against every bullet on the resume. Mark each bullet
|
|
156
|
-
PASS, MINOR, or MAJOR.
|
|
157
|
-
|
|
158
|
-
### Step 1: Scope check
|
|
159
|
-
|
|
160
|
-
Read the bullet aloud in 4 seconds or less. If you cannot finish in 4
|
|
161
|
-
seconds, the bullet is too long. **Action:** trim to one sentence under 25
|
|
162
|
-
words unless the bullet carries a justified centerpiece (and centerpiece
|
|
163
|
-
bullets stay under 40 words).
|
|
164
|
-
|
|
165
|
-
### Step 2: Offense scan
|
|
166
|
-
|
|
167
|
-
For each bullet, scan for the eight offense categories above. Record any
|
|
168
|
-
hits with the category number.
|
|
169
|
-
|
|
170
|
-
### Step 3: Verify proof points
|
|
171
|
-
|
|
172
|
-
Every numeric claim in a bullet must be verifiable. If a number cannot be
|
|
173
|
-
sourced, drop it. Hedging numbers ("roughly", "around", "approximately")
|
|
174
|
-
are acceptable when the underlying number is verifiable but variable.
|
|
175
|
-
|
|
176
|
-
### Step 4: Audience alignment
|
|
177
|
-
|
|
178
|
-
For each bullet, ask: would the hiring manager for **this specific role**
|
|
179
|
-
recognize the terms used? If the bullet uses domain language outside the
|
|
180
|
-
target role's vocabulary (engineering jargon on a trust-and-safety resume,
|
|
181
|
-
finance acronyms on an engineering resume), rewrite using domain-neutral
|
|
182
|
-
capability nouns.
|
|
183
|
-
|
|
184
|
-
### Step 5: Mechanism removal pass
|
|
185
|
-
|
|
186
|
-
For each bullet that survived steps 1-4, ask: does this bullet describe
|
|
187
|
-
**what** the work accomplished, or **how** the work was done? If it
|
|
188
|
-
describes **how**, rewrite to describe **what** and move the **how** to
|
|
189
|
-
interview prep notes.
|
|
190
|
-
|
|
191
|
-
### Step 6: Section-level coherence
|
|
192
|
-
|
|
193
|
-
After per-bullet review, scan each section. Check for:
|
|
194
|
-
|
|
195
|
-
- **Bullet count consistency** — sections with similar weight should have
|
|
196
|
-
similar bullet counts. A 5-bullet section next to a 1-bullet section
|
|
197
|
-
signals imbalance.
|
|
198
|
-
- **Voice consistency** — verb tense, sentence structure, and bullet length
|
|
199
|
-
should match across sections.
|
|
200
|
-
- **Relevance ordering** — the most-relevant-to-the-target-role section
|
|
201
|
-
should appear first within its time band (Steve Dalton, *The 2-Hour Job
|
|
202
|
-
Search* §6: relevance over strict chronology when chronology does not
|
|
203
|
-
conflict).
|
|
204
|
-
|
|
205
|
-
## Output format
|
|
206
|
-
|
|
207
|
-
The audit produces a markdown report with this structure:
|
|
208
|
-
|
|
209
|
-
```markdown
|
|
210
|
-
# Resume Audit Report
|
|
211
|
-
|
|
212
|
-
## Top offenders (worst first)
|
|
213
|
-
|
|
214
|
-
### #1 — [Section] bullet [N]. [Severity]
|
|
215
|
-
|
|
216
|
-
[Quote of current bullet]
|
|
217
|
-
|
|
218
|
-
**Offenses:** [comma-separated category numbers]
|
|
219
|
-
|
|
220
|
-
**Proposed rewrite:** [tighter version]
|
|
221
|
-
|
|
222
|
-
**Words saved:** [N words → M words]
|
|
223
|
-
|
|
224
|
-
(repeat for each offender)
|
|
225
|
-
|
|
226
|
-
## Sections that pass
|
|
227
|
-
|
|
228
|
-
- [Section name]: [bullet count] bullets, all PASS
|
|
229
|
-
- (repeat)
|
|
230
|
-
|
|
231
|
-
## Section-level findings
|
|
232
|
-
|
|
233
|
-
[Coherence issues from Step 6, if any]
|
|
234
|
-
|
|
235
|
-
## Sources cited
|
|
236
|
-
|
|
237
|
-
- Bock, *Work Rules!* (2015), p. 71 — for offenses [N]
|
|
238
|
-
- Dalton, *2-Hour Job Search* (2012), Ch. 3 — for offenses [N]
|
|
239
|
-
- Adler, *Hire With Your Head* (2021) — for offenses [N]
|
|
240
|
-
```
|
|
241
|
-
|
|
242
|
-
## When this skill applies
|
|
243
|
-
|
|
244
|
-
- User asks to review or audit a resume
|
|
245
|
-
- User asks "is my resume too detailed"
|
|
246
|
-
- User asks for tighter resume bullets
|
|
247
|
-
- A resume document is shared and the user wants feedback
|
|
248
|
-
- Before submitting a resume to a target role
|
|
249
|
-
|
|
250
|
-
## When this skill does not apply
|
|
251
|
-
|
|
252
|
-
- Cover letter review (use a separate cover-letter-review skill if needed)
|
|
253
|
-
- Resume formatting fixes (font, spacing, layout) — this skill audits
|
|
254
|
-
content only
|
|
255
|
-
- Resume creation from scratch — this skill assumes a draft exists
|
|
256
|
-
|
|
257
|
-
## Triggers
|
|
258
|
-
|
|
259
|
-
`/resume-review`, "review my resume", "audit this resume", "is my resume
|
|
260
|
-
too detailed", "tighten my resume bullets", "what offenses do you see in my
|
|
261
|
-
resume", "are my bullets too granular".
|
|
@@ -1,307 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: rule-audit
|
|
3
|
-
description: Audit AGENTS.md, rules, hooks, and docs across user and project layers for enforcement gaps, duplication, and compliance
|
|
4
|
-
user-invocable: true
|
|
5
|
-
disable-model-invocation: true
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# Rule Audit
|
|
9
|
-
|
|
10
|
-
Full enforcement audit of AGENTS.md, `.Codex/rules/`, hooks (settings.json), and referenced docs.
|
|
11
|
-
|
|
12
|
-
Works across **two layers** — user-global (`~/.Codex/`) and project-local (cwd). Detects cross-layer duplication where project rules restate user rules, wasting instruction budget.
|
|
13
|
-
|
|
14
|
-
Produces a scored report with corrective actions.
|
|
15
|
-
|
|
16
|
-
## Phase 0: Layer Detection
|
|
17
|
-
|
|
18
|
-
Before launching agents, detect which layers exist:
|
|
19
|
-
|
|
20
|
-
```
|
|
21
|
-
User layer (always present):
|
|
22
|
-
~/.Codex/AGENTS.md
|
|
23
|
-
~/.Codex/rules/*.md
|
|
24
|
-
~/.Codex/settings.json (hooks)
|
|
25
|
-
~/.Codex/docs/*.md
|
|
26
|
-
|
|
27
|
-
Project layer (check cwd):
|
|
28
|
-
<cwd>/AGENTS.md
|
|
29
|
-
<cwd>/.Codex/AGENTS.md
|
|
30
|
-
<cwd>/.Codex/rules/*.md
|
|
31
|
-
<cwd>/.Codex/settings.json (project hooks)
|
|
32
|
-
|
|
33
|
-
If cwd == ~ (home directory), skip project layer (same as user layer).
|
|
34
|
-
If no project-layer files exist, report "single-layer audit (user only)".
|
|
35
|
-
If project-layer files exist, report "dual-layer audit (user + project)".
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
## Phase 1: Inventory (Parallel Discovery)
|
|
39
|
-
|
|
40
|
-
Launch 3 agents in parallel to inventory the full enforcement landscape.
|
|
41
|
-
|
|
42
|
-
If dual-layer: each agent inventories BOTH layers, tagging each file with its layer (`user` or `project`).
|
|
43
|
-
|
|
44
|
-
### Agent 1: Rules & AGENTS.md Inventory
|
|
45
|
-
|
|
46
|
-
Read and catalog every advisory-layer file:
|
|
47
|
-
|
|
48
|
-
```
|
|
49
|
-
User layer:
|
|
50
|
-
~/.Codex/AGENTS.md
|
|
51
|
-
~/.Codex/rules/*.md
|
|
52
|
-
|
|
53
|
-
Project layer (if exists):
|
|
54
|
-
<cwd>/AGENTS.md
|
|
55
|
-
<cwd>/.Codex/AGENTS.md
|
|
56
|
-
<cwd>/.Codex/rules/*.md
|
|
57
|
-
|
|
58
|
-
For EACH file, extract:
|
|
59
|
-
- file_path
|
|
60
|
-
- layer (user | project)
|
|
61
|
-
- line_count
|
|
62
|
-
- purpose (1-sentence summary of what this file tries to enforce)
|
|
63
|
-
- rules (list of individual rules/instructions, one per line)
|
|
64
|
-
- framing (count of negative rules using "never/don't/do not/no" vs positive rules)
|
|
65
|
-
- has_rationale (does each rule explain WHY?)
|
|
66
|
-
- has_code_examples (are commands in code fences?)
|
|
67
|
-
- duplicates (rules that appear in multiple files -- list which files AND which layers)
|
|
68
|
-
```
|
|
69
|
-
|
|
70
|
-
Output as structured markdown to the conversation.
|
|
71
|
-
|
|
72
|
-
### Agent 2: Hook Inventory
|
|
73
|
-
|
|
74
|
-
Read settings.json hooks config and each referenced hook script:
|
|
75
|
-
|
|
76
|
-
```
|
|
77
|
-
User hooks:
|
|
78
|
-
~/.Codex/settings.json
|
|
79
|
-
~/.Codex/hooks/**/*.py
|
|
80
|
-
|
|
81
|
-
Project hooks (if <cwd>/.Codex/settings.json exists):
|
|
82
|
-
<cwd>/.Codex/settings.json
|
|
83
|
-
<cwd>/.Codex/hooks/**/*.py
|
|
84
|
-
|
|
85
|
-
For EACH hook entry in settings.json (both layers):
|
|
86
|
-
- layer (user | project)
|
|
87
|
-
- event (PreToolUse, PostToolUse, SessionStart, etc.)
|
|
88
|
-
- matcher
|
|
89
|
-
- hook_script_path (extract from the command string after the last quote)
|
|
90
|
-
- Read the actual script file
|
|
91
|
-
- purpose (what rule does this hook enforce?)
|
|
92
|
-
- enforcement_type: "blocking" (exit 2 stderr, or PreToolUse exit 0 + JSON deny) | "advisory" (stdout message) | "validation" (post-check)
|
|
93
|
-
- method: "exit_code_2_stderr" | "pretooluse_json_stdout" (hookSpecificOutput.permissionDecision; see https://code.claude.com/docs/en/hooks) | "stdout" | "other"
|
|
94
|
-
- which_rule_file (which .Codex/rules/*.md or AGENTS.md rule does this correspond to?)
|
|
95
|
-
- orphaned (hook exists on disk but NOT in settings.json?)
|
|
96
|
-
```
|
|
97
|
-
|
|
98
|
-
Also check for hook scripts on disk that are NOT referenced in settings.json (orphaned hooks).
|
|
99
|
-
|
|
100
|
-
### Agent 3: Docs Inventory
|
|
101
|
-
|
|
102
|
-
Read referenced documentation files:
|
|
103
|
-
|
|
104
|
-
```
|
|
105
|
-
User docs:
|
|
106
|
-
~/.Codex/docs/*.md (glob to discover all)
|
|
107
|
-
|
|
108
|
-
Project docs (if exists):
|
|
109
|
-
<cwd>/.Codex/docs/*.md
|
|
110
|
-
|
|
111
|
-
For EACH file:
|
|
112
|
-
- file_path
|
|
113
|
-
- layer (user | project)
|
|
114
|
-
- line_count
|
|
115
|
-
- purpose
|
|
116
|
-
- loaded_when (is this always loaded, or on-demand via reference?)
|
|
117
|
-
- overlaps_with (which rules/*.md files cover the same topics?)
|
|
118
|
-
- hook_enforced (which rules in this doc are enforced by hooks vs purely advisory?)
|
|
119
|
-
```
|
|
120
|
-
|
|
121
|
-
## Phase 2: Cross-Reference Analysis
|
|
122
|
-
|
|
123
|
-
After all 3 agents return, analyze the combined inventory:
|
|
124
|
-
|
|
125
|
-
### 2A: Duplication Map
|
|
126
|
-
|
|
127
|
-
Build a matrix of where each concept appears:
|
|
128
|
-
|
|
129
|
-
```
|
|
130
|
-
| Rule/Concept | AGENTS.md | rules/*.md | docs/*.md | hooks | Count |
|
|
131
|
-
|---|---|---|---|---|---|
|
|
132
|
-
| BDD first | line 52, 92 | bdd.md | - | tdd_enforcer.py | 3 advisory + 1 hook |
|
|
133
|
-
| No magic values | - | code-standards.md | CODE_RULES.md:49 | code_rules_enforcer.py | 2 advisory + 1 hook |
|
|
134
|
-
| ... | ... | ... | ... | ... | ... |
|
|
135
|
-
```
|
|
136
|
-
|
|
137
|
-
Flag any concept appearing 3+ times across advisory files (duplication tax on instruction budget).
|
|
138
|
-
|
|
139
|
-
### 2B: Enforcement Gap Analysis
|
|
140
|
-
|
|
141
|
-
For each rule/concept, classify its enforcement level:
|
|
142
|
-
|
|
143
|
-
```
|
|
144
|
-
| Level | Description | Example |
|
|
145
|
-
|---|---|---|
|
|
146
|
-
| ENFORCED | Hook blocks the action deterministically | destructive_command_blocker.py |
|
|
147
|
-
| VALIDATED | PostToolUse checks after the fact | mypy_validator.py, auto_formatter.py |
|
|
148
|
-
| ADVISORY | In AGENTS.md/rules but no hook backs it | most rules |
|
|
149
|
-
| REDUNDANT | Codex already does this by default | "write clean code" |
|
|
150
|
-
| ORPHANED | Hook exists but no corresponding rule | hook with no rule backing |
|
|
151
|
-
```
|
|
152
|
-
|
|
153
|
-
### 2C: Formatting Compliance Score
|
|
154
|
-
|
|
155
|
-
Score each rule file against research-backed criteria:
|
|
156
|
-
|
|
157
|
-
```
|
|
158
|
-
| Criterion | Weight | Description |
|
|
159
|
-
|---|---|---|
|
|
160
|
-
| Positive framing | 25% | % of rules using positive "do X" vs negative "don't X" |
|
|
161
|
-
| Rationale included | 20% | % of rules with WHY explanation |
|
|
162
|
-
| Actionable | 20% | % of rules an agent could execute without interpretation |
|
|
163
|
-
| Concise | 15% | Line count relative to unique rule count (lower = better) |
|
|
164
|
-
| Code fences | 10% | Commands in code fences vs prose |
|
|
165
|
-
| No duplication | 10% | % of rules NOT duplicated elsewhere |
|
|
166
|
-
```
|
|
167
|
-
|
|
168
|
-
Score: 0-100 per file. Weight by instruction count contribution.
|
|
169
|
-
|
|
170
|
-
### 2D: Cross-Layer Duplication (dual-layer only)
|
|
171
|
-
|
|
172
|
-
If both user and project layers exist, compare them:
|
|
173
|
-
|
|
174
|
-
```
|
|
175
|
-
| Rule/Concept | User Layer File | Project Layer File | Verdict |
|
|
176
|
-
|---|---|---|---|
|
|
177
|
-
| BDD first | code-standards.md | AGENTS.md line 5 | DUPLICATE — remove from project |
|
|
178
|
-
| No magic values | code-standards.md | rules/code-quality.md | DUPLICATE — remove from project |
|
|
179
|
-
| Use pytest fixtures | (not present) | rules/testing.md | PROJECT-ONLY — keep |
|
|
180
|
-
| Django migrations | docs/DJANGO_PATTERNS.md | AGENTS.md line 22 | DUPLICATE — remove from project |
|
|
181
|
-
```
|
|
182
|
-
|
|
183
|
-
Verdicts:
|
|
184
|
-
- **DUPLICATE**: Rule exists in both layers. Project copy wastes budget. Remove from project unless it narrows/overrides the user rule.
|
|
185
|
-
- **OVERRIDE**: Project rule intentionally changes a user rule (e.g., user says "use pytest", project says "use unittest"). Keep and document.
|
|
186
|
-
- **PROJECT-ONLY**: Rule exists only in project layer. Keep — it's project-specific.
|
|
187
|
-
- **USER-ONLY**: Rule exists only in user layer. Expected for cross-cutting rules.
|
|
188
|
-
|
|
189
|
-
### 2E: Combined Budget Analysis
|
|
190
|
-
|
|
191
|
-
Calculate the total instruction count across all loaded files from BOTH layers:
|
|
192
|
-
|
|
193
|
-
```
|
|
194
|
-
User layer:
|
|
195
|
-
~/.Codex/AGENTS.md: ~X instructions
|
|
196
|
-
~/.Codex/rules/*.md total: ~Y instructions
|
|
197
|
-
~/.Codex/docs (if loaded): ~Z instructions
|
|
198
|
-
|
|
199
|
-
Project layer (if exists):
|
|
200
|
-
<cwd>/AGENTS.md: ~A instructions
|
|
201
|
-
<cwd>/.Codex/AGENTS.md: ~B instructions
|
|
202
|
-
<cwd>/.Codex/rules/*.md: ~C instructions
|
|
203
|
-
|
|
204
|
-
COMBINED TOTAL: ~N instructions
|
|
205
|
-
Cross-layer duplicates: ~D instructions (wasted)
|
|
206
|
-
Effective total: ~(N - D) instructions
|
|
207
|
-
|
|
208
|
-
Research ceiling: 150 instructions (compliance degrades beyond this) [Source 1]
|
|
209
|
-
Budget remaining: 150 - (N - D) = deficit/surplus
|
|
210
|
-
```
|
|
211
|
-
|
|
212
|
-
## Phase 3: Corrective Action Plan
|
|
213
|
-
|
|
214
|
-
Generate a priority-ordered action plan:
|
|
215
|
-
|
|
216
|
-
### Priority 1: Cut (Remove or Merge)
|
|
217
|
-
|
|
218
|
-
Items that waste instruction budget:
|
|
219
|
-
- Rules Codex already follows by default (REDUNDANT)
|
|
220
|
-
- Rules duplicated 3+ times across files (consolidate to ONE location)
|
|
221
|
-
- Rules in AGENTS.md that belong in scoped rules/*.md files
|
|
222
|
-
- Docs content that duplicates rules content
|
|
223
|
-
|
|
224
|
-
### Priority 2: Rewrite (Improve Formatting)
|
|
225
|
-
|
|
226
|
-
Items scored below 60/100 in formatting compliance:
|
|
227
|
-
- Flip negative rules to positive framing
|
|
228
|
-
- Add rationale where missing
|
|
229
|
-
- Put commands in code fences
|
|
230
|
-
- Make vague rules actionable
|
|
231
|
-
|
|
232
|
-
### Priority 3: Promote (Advisory -> Enforced)
|
|
233
|
-
|
|
234
|
-
Rules that SHOULD have hook enforcement but don't:
|
|
235
|
-
- High-violation rules that Codex repeatedly ignores
|
|
236
|
-
- Rules with deterministic criteria (can be pattern-matched)
|
|
237
|
-
- Safety-critical rules where violation has real cost
|
|
238
|
-
|
|
239
|
-
For each, specify:
|
|
240
|
-
- Which hook event (PreToolUse, PostToolUse, Stop)
|
|
241
|
-
- Blocking vs advisory
|
|
242
|
-
- Pattern to match
|
|
243
|
-
- Estimated implementation effort
|
|
244
|
-
|
|
245
|
-
### Priority 4: Demote (Enforced -> Removed)
|
|
246
|
-
|
|
247
|
-
Hooks that add latency without value:
|
|
248
|
-
- Hooks that never fire (check if the pattern is too narrow)
|
|
249
|
-
- Advisory hooks that could be rules instead
|
|
250
|
-
- Hooks using deprecated methods (exit code 2 instead of permissionDecision)
|
|
251
|
-
|
|
252
|
-
### Priority 5: Deduplicate Across Layers (dual-layer only)
|
|
253
|
-
|
|
254
|
-
For each DUPLICATE from 2D:
|
|
255
|
-
- If project rule is identical to user rule: delete from project
|
|
256
|
-
- If project rule narrows user rule: keep in project, add comment referencing user rule
|
|
257
|
-
- If project rule conflicts with user rule: flag for user decision (OVERRIDE vs mistake)
|
|
258
|
-
|
|
259
|
-
### Priority 6: Restructure
|
|
260
|
-
|
|
261
|
-
Optimal placement recommendations:
|
|
262
|
-
- What stays in AGENTS.md (critical, cross-cutting, <50 lines target)
|
|
263
|
-
- What moves to rules/*.md (domain-specific, scopable)
|
|
264
|
-
- What moves to skills (on-demand workflows, not always relevant)
|
|
265
|
-
- What becomes a hook (deterministic enforcement)
|
|
266
|
-
|
|
267
|
-
## Phase 4: Output
|
|
268
|
-
|
|
269
|
-
Write the audit report to the Obsidian vault:
|
|
270
|
-
|
|
271
|
-
**Path:** `sessions/[Project] Rule Audit [date].md`
|
|
272
|
-
|
|
273
|
-
**Format:**
|
|
274
|
-
|
|
275
|
-
```markdown
|
|
276
|
-
---
|
|
277
|
-
tags: [audit, rules, enforcement, Codex]
|
|
278
|
-
date: YYYY-MM-DD
|
|
279
|
-
type: rule-audit
|
|
280
|
-
---
|
|
281
|
-
|
|
282
|
-
## Rule Audit Report -- [Date]
|
|
283
|
-
|
|
284
|
-
### Inventory Summary
|
|
285
|
-
[File counts, total instruction count, budget analysis]
|
|
286
|
-
|
|
287
|
-
### Duplication Map
|
|
288
|
-
[Table from 2A]
|
|
289
|
-
|
|
290
|
-
### Enforcement Gaps
|
|
291
|
-
[Table from 2B -- sorted by risk level]
|
|
292
|
-
|
|
293
|
-
### Formatting Scores
|
|
294
|
-
[Table from 2C -- sorted by score ascending]
|
|
295
|
-
|
|
296
|
-
### Corrective Actions
|
|
297
|
-
[Numbered list from Phase 3, grouped by priority]
|
|
298
|
-
|
|
299
|
-
### Implementation Checklist
|
|
300
|
-
[ ] Priority 1 items (with specific file edits)
|
|
301
|
-
[ ] Priority 2 items (with before/after examples)
|
|
302
|
-
[ ] Priority 3 items (with hook specifications)
|
|
303
|
-
[ ] Priority 4 items (with removal justification)
|
|
304
|
-
[ ] Priority 5 items (with move-from/move-to)
|
|
305
|
-
```
|
|
306
|
-
|
|
307
|
-
Present the report to the user and ask which priorities to tackle first.
|