holycodex 0.15.1 → 0.15.2
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/README.md +3 -2
- package/dist/assets/plugin/agents/explorer.md +3 -0
- package/dist/assets/plugin/agents/librarian.md +4 -0
- package/dist/assets/plugin/agents/reviewer.md +4 -0
- package/dist/assets/plugin/agents/root.md +3 -5
- package/dist/assets/plugin/agents/worker.md +4 -2
- package/dist/assets/plugin/plugin.json +1 -2
- package/dist/assets/plugin/rules/holycodex.md +12 -11
- package/dist/assets/plugin/skills/babysit-ci/SKILL.md +1 -1
- package/dist/assets/plugin/skills/code-review/SKILL.md +2 -0
- package/dist/assets/plugin/skills/commit/SKILL.md +2 -2
- package/dist/assets/plugin/skills/compress/SKILL.md +1 -1
- package/dist/assets/plugin/skills/handoff/SKILL.md +1 -1
- package/dist/assets/plugin/skills/lsp/SKILL.md +1 -1
- package/dist/assets/plugin/skills/lsp-setup/SKILL.md +1 -1
- package/dist/assets/plugin/skills/plan-review/SKILL.md +1 -1
- package/dist/assets/plugin/skills/ponytail/SKILL.md +1 -13
- package/dist/assets/plugin/skills/ponytail/metadata.json +1 -1
- package/dist/assets/plugin/skills/programming/SKILL.md +2 -0
- package/dist/assets/plugin/skills/refactor/SKILL.md +1 -1
- package/dist/assets/plugin/skills/rules/SKILL.md +1 -1
- package/dist/assets/plugin/skills/stop-slop/LICENSE +21 -0
- package/dist/assets/plugin/skills/stop-slop/SKILL.md +42 -0
- package/dist/assets/plugin/skills/stop-slop/agents/openai.yaml +6 -0
- package/dist/assets/plugin/skills/stop-slop/references/examples.md +69 -0
- package/dist/assets/plugin/skills/stop-slop/references/phrases.md +128 -0
- package/dist/assets/plugin/skills/stop-slop/references/structures.md +134 -0
- package/dist/assets/plugin/skills/testing-quality.md +15 -0
- package/dist/assets/plugin/skills/workflows/SKILL.md +1 -1
- package/dist/assets/plugin/skills/writing-for-agents/LICENSE +21 -0
- package/dist/assets/plugin/skills/writing-for-agents/SKILL-MECHANICS.md +19 -0
- package/dist/assets/plugin/skills/writing-for-agents/SKILL.md +25 -14
- package/dist/{binary-BCtnZPMA.js → binary-CPh9zpjK.js} +2731 -2793
- package/dist/binary-th3XjkPd.js +3 -0
- package/dist/index.js +4 -4
- package/dist/src-d8LOMF1j.js +3 -0
- package/dist/{src-BmUZJGuC.js → src-le8tAupU.js} +249 -260
- package/package.json +2 -2
- package/dist/assets/plugin/hooks/hooks.json +0 -17
- package/dist/assets/plugin/hooks/version.ts +0 -54
- package/dist/assets/plugin/skills/ast-grep/SKILL.md +0 -7
- package/dist/assets/plugin/skills/ast-grep/agents/openai.yaml +0 -6
- package/dist/assets/plugin/skills/remove-slop/SKILL.md +0 -7
- package/dist/assets/plugin/skills/remove-slop/agents/openai.yaml +0 -6
- package/dist/binary-K1P4tTUI.js +0 -3
- package/dist/src-BrjytttX.js +0 -3
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
# Structures to Avoid
|
|
2
|
+
|
|
3
|
+
## Binary Contrasts
|
|
4
|
+
|
|
5
|
+
These create false drama. State the point directly.
|
|
6
|
+
|
|
7
|
+
| Pattern | Problem |
|
|
8
|
+
| ------------------------------------------------------------- | ------------------------------ |
|
|
9
|
+
| "Not because X. Because Y." / "Not because X, but because Y." | Telegraphed reversal |
|
|
10
|
+
| "[X] isn't the problem. [Y] is." | Formulaic reframe |
|
|
11
|
+
| "The answer isn't X. It's Y." | Predictable pivot |
|
|
12
|
+
| "It feels like X. It's actually Y." | Setup/reveal cliche |
|
|
13
|
+
| "The question isn't X. It's Y." | Rhetorical misdirection |
|
|
14
|
+
| "Not X. But Y." / "not X, it's Y" / "isn't X, it's Y" | Mechanical contrast |
|
|
15
|
+
| "It's not this. It's that." | Same formula, different words |
|
|
16
|
+
| "stops being X and starts being Y" | False transformation arc |
|
|
17
|
+
| "doesn't mean X, but actually Y" | Negation-then-assertion crutch |
|
|
18
|
+
| "is about X but not Y" | False distinction |
|
|
19
|
+
| "not just X but also Y" | Additive hedge |
|
|
20
|
+
|
|
21
|
+
**Instead:** State Y directly. "The problem is Y." "Y matters here." Drop the negation entirely.
|
|
22
|
+
|
|
23
|
+
## Negative Listing
|
|
24
|
+
|
|
25
|
+
Listing what something is _not_ before revealing what it _is_. A rhetorical striptease.
|
|
26
|
+
|
|
27
|
+
| Pattern | Problem |
|
|
28
|
+
| ------------------------------------- | --------------------------------- |
|
|
29
|
+
| "Not a X... Not a Y... A Z." | Dramatic buildup through negation |
|
|
30
|
+
| "It wasn't X. It wasn't Y. It was Z." | Same structure, past tense |
|
|
31
|
+
|
|
32
|
+
**Instead:** State Z. The reader doesn't need the runway.
|
|
33
|
+
|
|
34
|
+
## Dramatic Fragmentation
|
|
35
|
+
|
|
36
|
+
Sentence fragments for emphasis read as manufactured profundity.
|
|
37
|
+
|
|
38
|
+
| Pattern | Problem |
|
|
39
|
+
| ---------------------------------------- | ----------------------- |
|
|
40
|
+
| "[Noun]. That's it. That's the [thing]." | Performative simplicity |
|
|
41
|
+
| "X. And Y. And Z." | Staccato drama |
|
|
42
|
+
| "This unlocks something. [Word]." | Artificial revelation |
|
|
43
|
+
|
|
44
|
+
**Instead:** Complete sentences. Trust content over presentation.
|
|
45
|
+
|
|
46
|
+
## Rhetorical Setups
|
|
47
|
+
|
|
48
|
+
These announce insight rather than deliver it.
|
|
49
|
+
|
|
50
|
+
| Pattern | Problem |
|
|
51
|
+
| --------------------- | ---------------------- |
|
|
52
|
+
| "What if [reframe]?" | Socratic posturing |
|
|
53
|
+
| "Here's what I mean:" | Redundant preview |
|
|
54
|
+
| "Think about it:" | Condescending prompt |
|
|
55
|
+
| "And that's okay." | Unnecessary permission |
|
|
56
|
+
|
|
57
|
+
**Instead:** Make the point. Let readers draw conclusions.
|
|
58
|
+
|
|
59
|
+
## Formulaic Constructions
|
|
60
|
+
|
|
61
|
+
| Pattern | Problem |
|
|
62
|
+
| ------------------------- | --------------------------- |
|
|
63
|
+
| "By the time X, I was Y." | Narrative template |
|
|
64
|
+
| "X that isn't Y" | Indirect. Say "X is broken" |
|
|
65
|
+
|
|
66
|
+
## False Agency
|
|
67
|
+
|
|
68
|
+
Giving inanimate things human verbs. Complaints don't "become" fixes. Bets don't "live or die." Decisions don't "emerge." A person does something to make those things happen. AI loves this because it avoids naming the actor.
|
|
69
|
+
|
|
70
|
+
| Pattern | Problem |
|
|
71
|
+
| ------------------------------- | ----------------------------------------------------------------- |
|
|
72
|
+
| "a complaint becomes a fix" | The complaint did nothing. Someone fixed it. |
|
|
73
|
+
| "a bet lives or dies in days" | Bets don't have lifespans. Someone kills the project or ships it. |
|
|
74
|
+
| "the decision emerges" | Decisions don't emerge. Someone decides. |
|
|
75
|
+
| "the culture shifts" | Cultures don't shift on their own. People change behavior. |
|
|
76
|
+
| "the conversation moves toward" | Conversations don't move. Someone steers. |
|
|
77
|
+
| "the data tells us" | Data sits there. Someone reads it and draws a conclusion. |
|
|
78
|
+
| "the market rewards" | Markets don't reward. Buyers pay for things. |
|
|
79
|
+
|
|
80
|
+
**Instead:** Name the human. "The team fixed it that week" beats "the complaint becomes a fix." If no specific person fits, use "you" to put the reader in the seat.
|
|
81
|
+
|
|
82
|
+
## Narrator-from-a-Distance
|
|
83
|
+
|
|
84
|
+
Floating above the scene instead of putting the reader in it.
|
|
85
|
+
|
|
86
|
+
| Pattern | Problem |
|
|
87
|
+
| ------------------------- | ----------------------- |
|
|
88
|
+
| "Nobody designed this." | Disembodied observation |
|
|
89
|
+
| "This happens because..." | Lecturer voice |
|
|
90
|
+
| "This is why..." | Same |
|
|
91
|
+
| "People tend to..." | Armchair sociologist |
|
|
92
|
+
|
|
93
|
+
**Instead:** Put the reader in the room. "You don't sit down one day and decide to..." beats "Nobody designed this."
|
|
94
|
+
|
|
95
|
+
## Passive Voice
|
|
96
|
+
|
|
97
|
+
Every sentence needs a subject doing something. Passive voice hides the actor and drains energy.
|
|
98
|
+
|
|
99
|
+
| Pattern | Fix |
|
|
100
|
+
| -------------------------- | -------------------- |
|
|
101
|
+
| "X was created" | Name who created it |
|
|
102
|
+
| "It is believed that" | Name who believes it |
|
|
103
|
+
| "Mistakes were made" | Name who made them |
|
|
104
|
+
| "The decision was reached" | Name who decided |
|
|
105
|
+
|
|
106
|
+
**Instead:** Find the actor. Put them at the front of the sentence.
|
|
107
|
+
|
|
108
|
+
## Sentence Starters to Avoid
|
|
109
|
+
|
|
110
|
+
| Pattern | Fix |
|
|
111
|
+
| --------------------------------------------------------------- | ----------------------------------------------- |
|
|
112
|
+
| Sentences starting with What, When, Where, Which, Who, Why, How | Restructure. Lead with the subject or the verb. |
|
|
113
|
+
| Paragraphs starting with "So" | Start with content |
|
|
114
|
+
| Sentences starting with "Look," | Remove |
|
|
115
|
+
|
|
116
|
+
Wh- openers become a crutch. "What makes this hard is..." becomes "The constraint is..." or better, name the specific constraint.
|
|
117
|
+
|
|
118
|
+
## Rhythm Patterns
|
|
119
|
+
|
|
120
|
+
| Pattern | Fix |
|
|
121
|
+
| ------------------------------ | --------------------------------------------------- |
|
|
122
|
+
| Three-item lists | Use two items or one |
|
|
123
|
+
| Questions answered immediately | Let questions breathe or cut them |
|
|
124
|
+
| Every paragraph ends punchily | Vary endings |
|
|
125
|
+
| Em-dashes | Remove. Use commas or periods. No em dashes at all. |
|
|
126
|
+
| Staccato fragmentation | Don't stack short punchy sentences |
|
|
127
|
+
| "Not always. Not perfectly." | Hedging disguised as reassurance |
|
|
128
|
+
|
|
129
|
+
## Word Patterns
|
|
130
|
+
|
|
131
|
+
| Pattern | Problem |
|
|
132
|
+
| ----------------------------------------------------------------------------------------------------- | ---------------------------------------------------------- |
|
|
133
|
+
| Lazy extremes (every, always, never, everyone, everybody, nobody) | False authority. Use specifics instead of sweeping claims. |
|
|
134
|
+
| All adverbs (-ly words, "really," "just," "literally," "genuinely," "honestly," "simply," "actually") | Empty emphasis. See phrases.md for full list. |
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# Testing quality
|
|
2
|
+
|
|
3
|
+
Protect stable behavior, contracts, invariants, safety properties, compatibility guarantees, and meaningful failure modes. Prefer observable behavior and typed or public boundaries while leaving implementation choices free.
|
|
4
|
+
|
|
5
|
+
Before adding a regression or smoke test, identify:
|
|
6
|
+
|
|
7
|
+
1. the stable behavior it protects;
|
|
8
|
+
2. the real regression it catches;
|
|
9
|
+
3. why a less brittle boundary cannot protect it.
|
|
10
|
+
|
|
11
|
+
Remove or rewrite tests that freeze incidental counts, inventories, internal paths, prompt or skill sizes, exact non-contract wording, irrelevant call order, deleted names, broad repository shape, or one implementation strategy. Avoid large internal snapshots and static source inspection when a behavior check exists.
|
|
12
|
+
|
|
13
|
+
A smoke test consumes the shipped artifact through one supported outer boundary with minimal realistic setup. It answers whether the artifact can start and perform its smallest supported job. It does not duplicate the suite, reproduce packaging logic, crawl file inventories, or accumulate historical implementation assertions.
|
|
14
|
+
|
|
15
|
+
Use proportional proof. A test that constrains more design than meaningful regression risk should not exist.
|
|
@@ -5,6 +5,6 @@ description: Use for substantive non-Go orchestration involving discovery, imple
|
|
|
5
5
|
|
|
6
6
|
Use this skill for substantive orchestration, because the active plan must control specialist routes, budgets, concurrency, retained context, and terminal proof.
|
|
7
7
|
|
|
8
|
-
Owner: Root control plane;
|
|
8
|
+
Owner: Root control plane; specialists execute literal bounded assignments. Boundary: apply the active plan and workflow runtime, keep capability and approval gates intact, and route contradictions or material choices back to Root. Direct mode remains with Root.
|
|
9
9
|
|
|
10
10
|
Completion: each assigned step has a structured outcome, accepted evidence, bounded changes, required checks, and a terminal branch; no specialist delegates or silently broadens authority.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Matt Pocock
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# Skill mechanics
|
|
2
|
+
|
|
3
|
+
This is the skill-specific branch of [writing-for-agents](SKILL.md): frontmatter, invocation choice, and router skills.
|
|
4
|
+
|
|
5
|
+
## Invocation
|
|
6
|
+
|
|
7
|
+
A **model-invoked** skill keeps a trigger-first `description` so an agent can select it and another skill can reach its shared reference. The always-loaded pointer spends context on every turn, so use one compact trigger per real branch and remove routing prose from the body.
|
|
8
|
+
|
|
9
|
+
A **user-invoked** skill sets `disable-model-invocation: true`. Its description becomes a human-facing one-line summary with trigger lists removed. Use this when only a person should select the skill.
|
|
10
|
+
|
|
11
|
+
Shared reference required by user-invoked skills belongs in a plain disclosed file that each can point to.
|
|
12
|
+
|
|
13
|
+
## Splitting by invocation
|
|
14
|
+
|
|
15
|
+
Split a model-invoked skill only when a distinct leading word should trigger it independently or another skill must reach it. The independent route must justify its permanent context pointer.
|
|
16
|
+
|
|
17
|
+
## Router skills
|
|
18
|
+
|
|
19
|
+
When many user-invoked skills exceed human cognitive load, add one user-invoked router that names them and their branches. A router can guide the person; it cannot autonomously invoke skills whose model invocation is disabled.
|
|
@@ -1,26 +1,37 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: writing-for-agents
|
|
3
|
-
description: Use when authoring or reviewing
|
|
3
|
+
description: Use when authoring or reviewing prompts, skills, profiles, delegations, handoffs, workflows, or agent-facing repository instructions; make them independently actionable with low context load.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Writing for agents
|
|
7
7
|
|
|
8
|
-
Treat
|
|
8
|
+
Treat each instruction as an interface with one contract:
|
|
9
9
|
|
|
10
|
-
Owner
|
|
11
|
-
Boundary
|
|
12
|
-
Completion
|
|
10
|
+
- **Owner:** the role permitted to act or decide.
|
|
11
|
+
- **Boundary:** the exact scope, authority, constraints, and escalation point.
|
|
12
|
+
- **Completion:** the observable outcome and proof that permit the agent to stop.
|
|
13
13
|
|
|
14
|
-
|
|
15
|
-
- **Scope and authority:** exact files or decisions in scope, and who owns everything else.
|
|
16
|
-
- **Constraints:** retained policy, tools, security, and non-goals.
|
|
17
|
-
- **Evidence and completion:** the output shape, proof required, and the condition that permits stopping.
|
|
18
|
-
- **Escalation:** the precise missing fact or conflict that returns to the owning agent.
|
|
14
|
+
Write an objective, scope, retained constraints, evidence, exclusions, and the exact missing fact or material choice that returns to the owner. The receiver must be able to act, prove, and stop without reconstructing intent.
|
|
19
15
|
|
|
20
|
-
|
|
16
|
+
## Information design
|
|
21
17
|
|
|
22
|
-
|
|
18
|
+
A **context pointer** names out-of-context material and front-loads the branches that load it. Keep one trigger per genuine branch; synonyms spend permanent context without improving routing.
|
|
23
19
|
|
|
24
|
-
|
|
20
|
+
Budget two loads:
|
|
25
21
|
|
|
26
|
-
|
|
22
|
+
- **Context load:** always-loaded descriptions and repository rules.
|
|
23
|
+
- **Cognitive load:** material a person must remember and select.
|
|
24
|
+
|
|
25
|
+
Place information by immediacy: in-file steps, in-file reference, then disclosed reference. Inline what every invocation needs. Put branch-specific mechanics behind a clear pointer. Co-locate each concept with its rules and caveats; split real invocation or sequence branches when one file sprawls or later steps cause premature completion.
|
|
26
|
+
|
|
27
|
+
Each step needs a clear, demanding completion criterion. Sharpen a vague bound before splitting the sequence. Use leading words with useful pretrained meaning to compress repeated concepts. Prefer positive steering; keep prohibitions for hard guardrails and pair them with the target behavior.
|
|
28
|
+
|
|
29
|
+
## Pruning
|
|
30
|
+
|
|
31
|
+
Keep each meaning in one source of truth. Treat code, configuration, directory layout, and `--help` as authoritative environment lookups; document only reasons, gotchas, or contracts the environment cannot reveal. Delete stale caches, irrelevant branches, sediment, and instructions that do not change model behavior.
|
|
32
|
+
|
|
33
|
+
Use architectural role names: Root owns material decisions, Workers implement bounded seams, Reviewers repair their assigned findings to fixed point, and other specialists follow their literal authority. Continuations carry changed constraints, evidence, decisions, and semantic delta instead of replaying accepted context.
|
|
34
|
+
|
|
35
|
+
When the document is a skill, read [SKILL-MECHANICS.md](SKILL-MECHANICS.md) for invocation and frontmatter mechanics.
|
|
36
|
+
|
|
37
|
+
Completion means the instruction routes at the right branch, names authority and exclusions, prevents premature completion, supplies checkable proof, and contains no duplicated or no-op policy.
|