holycodex 0.15.0 → 0.15.1-dev.35.1
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 +4 -0
- package/dist/assets/plugin/hooks/hooks.json +17 -0
- package/dist/assets/plugin/hooks/version.ts +54 -0
- package/dist/assets/plugin/plugin.json +27 -32
- package/dist/assets/plugin/skills/writing-for-agents/SKILL.md +20 -4
- package/dist/{binary-DYvVDqZ5.js → binary-BCtnZPMA.js} +438 -285
- package/dist/binary-K1P4tTUI.js +3 -0
- package/dist/index.js +4 -4
- package/dist/{src-DamQOFzF.js → src-BmUZJGuC.js} +338 -254
- package/dist/src-BrjytttX.js +3 -0
- package/package.json +4 -4
- package/dist/assets/plugin/hooks/manifest.json +0 -11
- package/dist/binary-DODC08JV.js +0 -3
- package/dist/src-BOQ_ib7j.js +0 -3
package/README.md
CHANGED
|
@@ -3,3 +3,7 @@
|
|
|
3
3
|
The public `holycodex` CLI composes the workspace installer, doctor, cleanup,
|
|
4
4
|
version, and workflow lifecycle commands. The normative command contract is
|
|
5
5
|
in the repository [CLI contract](../../docs/CLI.md).
|
|
6
|
+
|
|
7
|
+
The Codex plugin is installed officially with `codex plugin marketplace add`
|
|
8
|
+
followed by `codex plugin add holycodex@holycodex`. Use `bunx holycodex` only for the
|
|
9
|
+
standalone CLI, including diagnostics and legacy payload repair.
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
{
|
|
2
|
+
"hooks": {
|
|
3
|
+
"SessionStart": [
|
|
4
|
+
{
|
|
5
|
+
"hooks": [
|
|
6
|
+
{
|
|
7
|
+
"type": "command",
|
|
8
|
+
"command": "bun \"${PLUGIN_ROOT}/hooks/version.ts\"",
|
|
9
|
+
"commandWindows": "\"C:/Program Files/Git/bin/bash.exe\" -lc \"bun \\\"${PLUGIN_ROOT}/hooks/version.ts\\\"\"",
|
|
10
|
+
"timeout": 10,
|
|
11
|
+
"statusMessage": "HolyCodex: reporting version"
|
|
12
|
+
}
|
|
13
|
+
]
|
|
14
|
+
}
|
|
15
|
+
]
|
|
16
|
+
}
|
|
17
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
|
|
3
|
+
import { readFile } from "node:fs/promises";
|
|
4
|
+
import { join } from "node:path";
|
|
5
|
+
|
|
6
|
+
const VERSION_PATTERN = /^(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)(?:-[0-9A-Za-z.-]+)?$/u;
|
|
7
|
+
const WINDOWS_GIT_BASH_INSTRUCTION =
|
|
8
|
+
" Use C:/Program Files/Git/bin/bash.exe for every shell command.";
|
|
9
|
+
type VersionManifest = Readonly<{ readonly version: string }>;
|
|
10
|
+
|
|
11
|
+
export function renderVersionContext(version: string, platform: NodeJS.Platform): string {
|
|
12
|
+
const suffix = platform === "win32" ? WINDOWS_GIT_BASH_INSTRUCTION : "";
|
|
13
|
+
return `HolyCodex ${version}.${suffix}`;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export function renderSessionStartOutput(
|
|
17
|
+
version: string,
|
|
18
|
+
platform: NodeJS.Platform = process.platform,
|
|
19
|
+
): string {
|
|
20
|
+
return `${JSON.stringify({
|
|
21
|
+
hookSpecificOutput: {
|
|
22
|
+
hookEventName: "SessionStart",
|
|
23
|
+
additionalContext: renderVersionContext(version, platform),
|
|
24
|
+
},
|
|
25
|
+
})}\n`;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export async function readInstalledPluginVersion(pluginRoot: string): Promise<string> {
|
|
29
|
+
const manifestPath = join(pluginRoot, ".codex-plugin", "plugin.json");
|
|
30
|
+
const parsed: unknown = JSON.parse(await readFile(manifestPath, "utf8"));
|
|
31
|
+
if (!isVersionManifest(parsed)) {
|
|
32
|
+
throw new Error("HolyCodex plugin manifest has no valid version.");
|
|
33
|
+
}
|
|
34
|
+
return parsed.version;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
function isVersionManifest(value: unknown): value is VersionManifest {
|
|
38
|
+
return (
|
|
39
|
+
typeof value === "object" &&
|
|
40
|
+
value !== null &&
|
|
41
|
+
!Array.isArray(value) &&
|
|
42
|
+
"version" in value &&
|
|
43
|
+
typeof value.version === "string" &&
|
|
44
|
+
VERSION_PATTERN.test(value.version)
|
|
45
|
+
);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
if (import.meta.main) {
|
|
49
|
+
const pluginRoot = process.env["PLUGIN_ROOT"]?.trim();
|
|
50
|
+
if (!pluginRoot) {
|
|
51
|
+
throw new Error("PLUGIN_ROOT is required.");
|
|
52
|
+
}
|
|
53
|
+
process.stdout.write(await readInstalledPluginVersion(pluginRoot).then(renderSessionStartOutput));
|
|
54
|
+
}
|
|
@@ -1,39 +1,34 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "holycodex",
|
|
3
|
+
"version": "0.15.1",
|
|
3
4
|
"description": "Root-directed capabilities and deterministic installed assets for HolyCodex.",
|
|
5
|
+
"author": {
|
|
6
|
+
"name": "David Basile Filho",
|
|
7
|
+
"url": "https://github.com/davidbasilefilho"
|
|
8
|
+
},
|
|
9
|
+
"homepage": "https://github.com/davidbasilefilho/holycodex",
|
|
10
|
+
"repository": "https://github.com/davidbasilefilho/holycodex",
|
|
4
11
|
"license": "Apache-2.0",
|
|
5
|
-
"
|
|
6
|
-
"
|
|
12
|
+
"keywords": [
|
|
13
|
+
"codex",
|
|
14
|
+
"agents",
|
|
7
15
|
"workflows",
|
|
8
|
-
"
|
|
9
|
-
"code-review",
|
|
10
|
-
"debugging",
|
|
11
|
-
"context7-cli",
|
|
12
|
-
"writing-for-agents",
|
|
13
|
-
"babysit-ci",
|
|
14
|
-
"ast-grep",
|
|
15
|
-
"commit",
|
|
16
|
-
"compress",
|
|
17
|
-
"handoff",
|
|
18
|
-
"lsp-setup",
|
|
19
|
-
"lsp",
|
|
20
|
-
"plan-review",
|
|
21
|
-
"refactor",
|
|
22
|
-
"remove-slop",
|
|
23
|
-
"rules",
|
|
24
|
-
"ponytail"
|
|
16
|
+
"developer-tools"
|
|
25
17
|
],
|
|
26
|
-
"
|
|
27
|
-
|
|
28
|
-
"
|
|
29
|
-
"
|
|
30
|
-
"agents
|
|
31
|
-
"
|
|
32
|
-
"
|
|
33
|
-
"
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
18
|
+
"skills": "./skills",
|
|
19
|
+
"interface": {
|
|
20
|
+
"displayName": "HolyCodex",
|
|
21
|
+
"shortDescription": "Root-directed Codex workflows and bounded specialist skills.",
|
|
22
|
+
"longDescription": "HolyCodex provides plan-aware workflows, bounded specialist agents, and deterministic verification for Codex tasks.",
|
|
23
|
+
"developerName": "David Basile Filho",
|
|
24
|
+
"category": "Developer Tools",
|
|
25
|
+
"capabilities": [
|
|
26
|
+
"Skills",
|
|
27
|
+
"Hooks",
|
|
28
|
+
"Code Intelligence"
|
|
29
|
+
],
|
|
30
|
+
"defaultPrompt": [
|
|
31
|
+
"Use HolyCodex to implement and verify this task."
|
|
32
|
+
]
|
|
33
|
+
}
|
|
39
34
|
}
|
|
@@ -1,10 +1,26 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: writing-for-agents
|
|
3
|
-
description: Use when authoring or reviewing prompts, skills, profiles, delegations, handoffs, workflows
|
|
3
|
+
description: Use when authoring or reviewing instructions consumed by agents, including prompts, skills, profiles, delegations, handoffs, and workflows.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
# Writing for agents
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
Treat instructions as a small interface, not a role description. Start with one contract:
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
Owner: the authoring role within its approved scope.
|
|
11
|
+
Boundary: keep policy in one source of truth and return material decisions to the owning agent.
|
|
12
|
+
Completion: the receiving agent can act, prove, and stop from this instruction alone.
|
|
13
|
+
|
|
14
|
+
- **Objective and outcome:** what must be true when the assignment ends.
|
|
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.
|
|
19
|
+
|
|
20
|
+
Write each behavior beside its reason when the reason changes a decision. Prefer direct positive steering, one source of truth, and pointers to branch-only detail. Remove duplicate policy, stale context, no-op prose, and instructions the environment already enforces. Keep a resumed assignment to its changed constraints and delta; do not replay the whole contract.
|
|
21
|
+
|
|
22
|
+
For Sol, state invariants and decision boundaries. For Luna, name the exact files or actions, evidence fields, authority limit, and stop condition; do not leave operational choices implicit. Keep dynamic assignments short enough to preserve working context.
|
|
23
|
+
|
|
24
|
+
Use the narrowest route: `programming` for implementation, `code-review` once after implementation, `workflows` for substantive orchestration, `context7-cli` for current external documentation, and `handoff` when context must pause or transfer. Read the selected route's skill only after choosing it.
|
|
25
|
+
|
|
26
|
+
Completion means the instruction is independently actionable, triggerable at the right branch, explicit about exclusions and escalation, and testable through the receiver's output. Adapted from the supplied Matt Pocock skills-writing concepts.
|