codex-genesis-harness 0.1.1 → 0.1.4
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/.codebase/ARCHITECTURE_REVIEW_COMPLETE.md +216 -0
- package/.codebase/CURRENT_STATE.md +2 -0
- package/.codebase/DOMAIN_MODELS.md +5 -3
- package/.codebase/FILE_NAMING_CLARIFICATION.md +161 -0
- package/.codebase/HARNESS_COMPLETENESS_AUDIT.md +613 -0
- package/.codebase/IMPLEMENTATION_COMPLETE.md +429 -0
- package/.codebase/IMPLEMENTATION_HANDOFF.md +351 -0
- package/.codebase/IMPROVEMENTS_SUMMARY.md +419 -0
- package/.codebase/PHASE3_SKILLS_NAMING_COMPLETE.md +292 -0
- package/.codebase/PHASE_DEPENDENCY_MAP.md +486 -0
- package/.codebase/QUICK_START_SPEC_IMPACT.md +456 -0
- package/.codebase/README.md +139 -0
- package/.codebase/RECOVERY_POINTS.md +438 -0
- package/.codex/skills/genesis-api-sync/SKILL.md +354 -0
- package/.codex/skills/genesis-api-sync/agents/openai.yaml +7 -0
- package/.codex/skills/genesis-api-sync/checklists/api-sync-checklist.md +101 -0
- package/.codex/skills/genesis-api-sync/examples/example.md +68 -0
- package/.codex/skills/genesis-api-sync/templates/api-change-template.md +257 -0
- package/.codex/skills/genesis-debug-guide/SKILL.md +479 -0
- package/.codex/skills/genesis-debug-guide/agents/openai.yaml +7 -0
- package/.codex/skills/genesis-debug-guide/checklists/flaky-test-investigation.md +339 -0
- package/.codex/skills/genesis-debug-guide/checklists/production-bug-debug.md +210 -0
- package/.codex/skills/genesis-debug-guide/checklists/test-failure-debug.md +158 -0
- package/.codex/skills/genesis-debug-guide/examples/example.md +48 -0
- package/.codex/skills/genesis-debug-guide/observability/debug-commands.md +365 -0
- package/.codex/skills/genesis-debug-guide/playbooks/unit-test-failures.md +289 -0
- package/.codex/skills/genesis-debug-guide/templates/debug-investigation-log.md +288 -0
- package/.codex/skills/genesis-docs-automation/SKILL.md +1003 -0
- package/.codex/skills/genesis-docs-automation/agents/openai.yaml +7 -0
- package/.codex/skills/genesis-docs-automation/checklists/docs-validation.md +359 -0
- package/.codex/skills/genesis-docs-automation/checklists/spec-alignment.md +312 -0
- package/.codex/skills/genesis-docs-automation/examples/example.md +59 -0
- package/.codex/skills/genesis-docs-automation/observability/docs-tracking.md +382 -0
- package/.codex/skills/genesis-docs-automation/playbooks/auto-update-flow.md +851 -0
- package/.codex/skills/genesis-docs-automation/playbooks/changelog-generation.md +491 -0
- package/.codex/skills/genesis-docs-automation/templates/changelog-entry-template.md +187 -0
- package/.codex/skills/genesis-docs-automation/templates/handoff-template.md +297 -0
- package/.codex/skills/genesis-harness/SKILL.md +734 -82
- package/.codex/skills/genesis-harness/checklists/bug-fix-qa.md +169 -0
- package/.codex/skills/genesis-harness/checklists/new-feature-qa.md +157 -0
- package/.codex/skills/genesis-harness/checklists/refactor-qa.md +216 -0
- package/.codex/skills/genesis-harness/checklists/requirements-validation.md +211 -0
- package/.codex/skills/genesis-harness/resources/change-impact-matrix-template.md +204 -0
- package/.codex/skills/genesis-harness/resources/foundation-phase-template.md +131 -0
- package/.codex/skills/genesis-harness/resources/phase-00-foundation-template.md +76 -0
- package/.codex/skills/genesis-harness/resources/post-implementation-guide.md +347 -0
- package/.codex/skills/genesis-harness/scripts/check-architecture-boundaries.sh +23 -23
- package/.codex/skills/genesis-harness/scripts/check-docs-sync.sh +24 -24
- package/.codex/skills/genesis-harness/scripts/check-no-debug-logs.sh +21 -21
- package/.codex/skills/genesis-harness/scripts/check-required-planning-files.sh +46 -46
- package/.codex/skills/genesis-harness/scripts/check-spec-changelog.sh +24 -24
- package/.codex/skills/genesis-harness/scripts/check-task-tracking.sh +25 -25
- package/.codex/skills/genesis-harness/scripts/compact-context.sh +54 -0
- package/.codex/skills/genesis-harness/scripts/create-adr.sh +74 -74
- package/.codex/skills/genesis-harness/scripts/create-bug.sh +160 -160
- package/.codex/skills/genesis-harness/scripts/create-feature.sh +217 -217
- package/.codex/skills/genesis-harness/scripts/detect-stack.sh +26 -26
- package/.codex/skills/genesis-harness/scripts/init-planning.sh +750 -719
- package/.codex/skills/genesis-harness/scripts/list-changed-files.sh +12 -12
- package/.codex/skills/genesis-harness/scripts/offload-log.sh +72 -0
- package/.codex/skills/genesis-harness/scripts/run-verification.sh +47 -47
- package/.codex/skills/genesis-harness/scripts/run-verify-loop.sh +75 -0
- package/.codex/skills/genesis-harness/scripts/update-state.sh +33 -33
- package/.codex/skills/genesis-harness-engineering/SKILL.md +159 -0
- package/.codex/skills/genesis-harness-engineering/checklists/checklist.md +48 -0
- package/.codex/skills/genesis-harness-engineering/examples/example.md +57 -0
- package/.codex/skills/genesis-harness-engineering/playbooks/harness-evolution.md +99 -0
- package/.codex/skills/genesis-harness-engineering/templates/harness-change-template.md +37 -0
- package/.codex/skills/genesis-observability-automation/SKILL.md +382 -0
- package/.codex/skills/genesis-observability-automation/agents/openai.yaml +7 -0
- package/.codex/skills/genesis-observability-automation/examples/example.md +86 -0
- package/.codex/skills/genesis-performance-profiling/SKILL.md +510 -0
- package/.codex/skills/genesis-performance-profiling/agents/openai.yaml +6 -0
- package/.codex/skills/genesis-performance-profiling/checklists/optimization-verification.md +199 -0
- package/.codex/skills/genesis-performance-profiling/checklists/performance-baseline.md +183 -0
- package/.codex/skills/genesis-performance-profiling/examples/example.md +234 -0
- package/.codex/skills/genesis-performance-profiling/observability/performance-tracking.md +202 -0
- package/.codex/skills/genesis-performance-profiling/playbooks/load-testing-orchestration.md +593 -0
- package/.codex/skills/genesis-performance-profiling/playbooks/profiling-playbook.md +601 -0
- package/.codex/skills/genesis-performance-profiling/templates/load-test-config-template.md +428 -0
- package/.codex/skills/genesis-performance-profiling/templates/performance-report-template.md +238 -0
- package/.codex/skills/genesis-release-orchestration/SKILL.md +653 -0
- package/.codex/skills/genesis-release-orchestration/agents/openai.yaml +7 -0
- package/.codex/skills/genesis-release-orchestration/checklists/post-deployment-verification.md +274 -0
- package/.codex/skills/genesis-release-orchestration/checklists/pre-release-validation.md +220 -0
- package/.codex/skills/genesis-release-orchestration/examples/example.md +78 -0
- package/.codex/skills/genesis-release-orchestration/observability/release-tracking.md +253 -0
- package/.codex/skills/genesis-release-orchestration/playbooks/canary-deployment-orchestration.md +472 -0
- package/.codex/skills/genesis-release-orchestration/playbooks/semantic-versioning-automation.md +494 -0
- package/.codex/skills/genesis-release-orchestration/templates/deployment-strategy-template.md +303 -0
- package/.codex/skills/genesis-release-orchestration/templates/release-runbook-template.md +420 -0
- package/.codex/skills/genesis-research-first/SKILL.md +237 -0
- package/.codex/skills/genesis-research-first/agents/openai.yaml +7 -0
- package/.codex/skills/genesis-research-first/examples/example.md +85 -0
- package/.codex/skills/genesis-spec-propagation/SKILL.md +534 -0
- package/.codex/skills/genesis-spec-propagation/agents/openai.yaml +7 -0
- package/.codex/skills/genesis-spec-propagation/checklists/phase-update-verification.md +384 -0
- package/.codex/skills/genesis-spec-propagation/checklists/spec-change-detection.md +257 -0
- package/.codex/skills/genesis-spec-propagation/examples/example.md +63 -0
- package/.codex/skills/genesis-spec-propagation/observability/propagation-tracking.md +373 -0
- package/.codex/skills/genesis-spec-propagation/playbooks/breaking-change-propagation.md +692 -0
- package/.codex/skills/genesis-spec-propagation/playbooks/feature-change-propagation.md +434 -0
- package/.codex/skills/genesis-spec-propagation/templates/migration-guide-template.md +407 -0
- package/.codex/skills/spec-impact-engine/SKILL.md +504 -0
- package/.codex/skills/spec-impact-engine/agents/openai.yaml +7 -0
- package/.codex/skills/spec-impact-engine/detect-spec-changes.sh +262 -0
- package/.codex/skills/spec-impact-engine/examples/example.md +98 -0
- package/.codex/skills/spec-impact-engine/templates/impact-report.md +248 -0
- package/.codex/skills/spec-impact-engine/templates/migration-guide.md +223 -0
- package/.codex-plugin/plugin.json +1 -1
- package/README.EN.md +719 -0
- package/README.VI.md +712 -0
- package/README.md +261 -107
- package/VERSION +1 -1
- package/bin/genesis-harness.js +20 -11
- package/package.json +1 -1
- package/scripts/README.md +342 -0
- package/scripts/compact-context.sh +54 -0
- package/scripts/detect-changes.sh +152 -0
- package/scripts/install.sh +50 -41
- package/scripts/offload-log.sh +72 -0
- package/scripts/run-evals.sh +70 -43
- package/scripts/run-verify-loop.sh +75 -0
- package/scripts/uninstall.sh +52 -43
- package/scripts/verify.sh +165 -73
- package/.codex/skills/harness-engineering-skill/SKILL.md +0 -45
- package/.codex/skills/harness-engineering-skill/checklists/checklist.md +0 -8
- package/.codex/skills/harness-engineering-skill/examples/example.md +0 -4
- package/.codex/skills/harness-engineering-skill/templates/harness-change-template.md +0 -8
- /package/.codex/skills/{ai-provider-skill → genesis-ai-provider}/SKILL.md +0 -0
- /package/.codex/skills/{ai-provider-skill → genesis-ai-provider}/agents/openai.yaml +0 -0
- /package/.codex/skills/{ai-provider-skill → genesis-ai-provider}/checklists/checklist.md +0 -0
- /package/.codex/skills/{ai-provider-skill → genesis-ai-provider}/examples/example.md +0 -0
- /package/.codex/skills/{ai-provider-skill → genesis-ai-provider}/templates/provider-contract-template.md +0 -0
- /package/.codex/skills/{api-contract-skill → genesis-api-contract}/SKILL.md +0 -0
- /package/.codex/skills/{api-contract-skill → genesis-api-contract}/agents/openai.yaml +0 -0
- /package/.codex/skills/{api-contract-skill → genesis-api-contract}/checklists/checklist.md +0 -0
- /package/.codex/skills/{api-contract-skill → genesis-api-contract}/examples/example.md +0 -0
- /package/.codex/skills/{api-contract-skill → genesis-api-contract}/templates/api-contract-template.md +0 -0
- /package/.codex/skills/{architecture-skill → genesis-architecture}/SKILL.md +0 -0
- /package/.codex/skills/{architecture-skill → genesis-architecture}/agents/openai.yaml +0 -0
- /package/.codex/skills/{architecture-skill → genesis-architecture}/checklists/checklist.md +0 -0
- /package/.codex/skills/{architecture-skill → genesis-architecture}/examples/example.md +0 -0
- /package/.codex/skills/{architecture-skill → genesis-architecture}/templates/architecture-decision-template.md +0 -0
- /package/.codex/skills/{codebase-map-skill → genesis-codebase-map}/SKILL.md +0 -0
- /package/.codex/skills/{codebase-map-skill → genesis-codebase-map}/agents/openai.yaml +0 -0
- /package/.codex/skills/{codebase-map-skill → genesis-codebase-map}/checklists/checklist.md +0 -0
- /package/.codex/skills/{codebase-map-skill → genesis-codebase-map}/examples/example.md +0 -0
- /package/.codex/skills/{codebase-map-skill → genesis-codebase-map}/templates/map-update-template.md +0 -0
- /package/.codex/skills/{design-spec-skill → genesis-design-spec}/SKILL.md +0 -0
- /package/.codex/skills/{design-spec-skill → genesis-design-spec}/agents/openai.yaml +0 -0
- /package/.codex/skills/{design-spec-skill → genesis-design-spec}/checklists/checklist.md +0 -0
- /package/.codex/skills/{design-spec-skill → genesis-design-spec}/examples/example.md +0 -0
- /package/.codex/skills/{design-spec-skill → genesis-design-spec}/templates/design-spec-template.md +0 -0
- /package/.codex/skills/{docs-skill → genesis-docs}/SKILL.md +0 -0
- /package/.codex/skills/{docs-skill → genesis-docs}/agents/openai.yaml +0 -0
- /package/.codex/skills/{docs-skill → genesis-docs}/checklists/checklist.md +0 -0
- /package/.codex/skills/{docs-skill → genesis-docs}/examples/example.md +0 -0
- /package/.codex/skills/{docs-skill → genesis-docs}/templates/docs-update-template.md +0 -0
- /package/.codex/skills/{harness-engineering-skill → genesis-harness-engineering}/agents/openai.yaml +0 -0
- /package/.codex/skills/{pipeline-orchestration-skill → genesis-pipeline-orchestration}/SKILL.md +0 -0
- /package/.codex/skills/{pipeline-orchestration-skill → genesis-pipeline-orchestration}/agents/openai.yaml +0 -0
- /package/.codex/skills/{pipeline-orchestration-skill → genesis-pipeline-orchestration}/checklists/checklist.md +0 -0
- /package/.codex/skills/{pipeline-orchestration-skill → genesis-pipeline-orchestration}/examples/example.md +0 -0
- /package/.codex/skills/{pipeline-orchestration-skill → genesis-pipeline-orchestration}/templates/orchestration-template.md +0 -0
- /package/.codex/skills/{planning-skill → genesis-planning}/SKILL.md +0 -0
- /package/.codex/skills/{planning-skill → genesis-planning}/agents/openai.yaml +0 -0
- /package/.codex/skills/{planning-skill → genesis-planning}/checklists/checklist.md +0 -0
- /package/.codex/skills/{planning-skill → genesis-planning}/examples/example.md +0 -0
- /package/.codex/skills/{planning-skill → genesis-planning}/templates/plan-template.md +0 -0
- /package/.codex/skills/{release-skill → genesis-release}/SKILL.md +0 -0
- /package/.codex/skills/{release-skill → genesis-release}/agents/openai.yaml +0 -0
- /package/.codex/skills/{release-skill → genesis-release}/checklists/checklist.md +0 -0
- /package/.codex/skills/{release-skill → genesis-release}/examples/example.md +0 -0
- /package/.codex/skills/{release-skill → genesis-release}/templates/release-checklist-template.md +0 -0
- /package/.codex/skills/{research-skill → genesis-research}/SKILL.md +0 -0
- /package/.codex/skills/{research-skill → genesis-research}/agents/openai.yaml +0 -0
- /package/.codex/skills/{research-skill → genesis-research}/checklists/checklist.md +0 -0
- /package/.codex/skills/{research-skill → genesis-research}/examples/example.md +0 -0
- /package/.codex/skills/{research-skill → genesis-research}/templates/research-note-template.md +0 -0
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# ==============================================================================
|
|
3
|
+
# Genesis Codex Harness — Tool Call Offloading Script
|
|
4
|
+
# ==============================================================================
|
|
5
|
+
# Captures standard output & error of any command, saves it to a durable log file,
|
|
6
|
+
# and prints a trimmed head-and-tail summary if it exceeds a line count threshold.
|
|
7
|
+
# Protects the AI context window against Context Rot.
|
|
8
|
+
# ==============================================================================
|
|
9
|
+
|
|
10
|
+
set -uo pipefail
|
|
11
|
+
|
|
12
|
+
THRESHOLD_LINES=50
|
|
13
|
+
SCRATCH_DIR="scratch/tool_outputs"
|
|
14
|
+
|
|
15
|
+
usage() {
|
|
16
|
+
echo "Usage: $0 [--threshold lines] <command> [args...]" >&2
|
|
17
|
+
exit 2
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
if [ "$#" -eq 0 ]; then
|
|
21
|
+
usage
|
|
22
|
+
fi
|
|
23
|
+
|
|
24
|
+
if [ "$1" = "--threshold" ]; then
|
|
25
|
+
THRESHOLD_LINES="$2"
|
|
26
|
+
shift 2
|
|
27
|
+
fi
|
|
28
|
+
|
|
29
|
+
if [ "$#" -eq 0 ]; then
|
|
30
|
+
usage
|
|
31
|
+
fi
|
|
32
|
+
|
|
33
|
+
mkdir -p "$SCRATCH_DIR"
|
|
34
|
+
|
|
35
|
+
# Generate unique log file path
|
|
36
|
+
TIMESTAMP="$(date +%Y%m%d_%H%M%S)"
|
|
37
|
+
RAND_ID=$((RANDOM % 10000))
|
|
38
|
+
LOG_FILE="$SCRATCH_DIR/output_${TIMESTAMP}_${RAND_ID}.log"
|
|
39
|
+
|
|
40
|
+
# Execute command and capture output
|
|
41
|
+
set +e
|
|
42
|
+
"$@" > "$LOG_FILE" 2>&1
|
|
43
|
+
EXIT_CODE=$?
|
|
44
|
+
set -e
|
|
45
|
+
|
|
46
|
+
# Calculate output size
|
|
47
|
+
LINE_COUNT=$(wc -l < "$LOG_FILE")
|
|
48
|
+
|
|
49
|
+
if [ "$LINE_COUNT" -le "$THRESHOLD_LINES" ]; then
|
|
50
|
+
# Print normally if within threshold
|
|
51
|
+
cat "$LOG_FILE"
|
|
52
|
+
else
|
|
53
|
+
# Offload and print head/tail summary
|
|
54
|
+
HEAD_LINES=$((THRESHOLD_LINES / 2))
|
|
55
|
+
TAIL_LINES=$((THRESHOLD_LINES / 2))
|
|
56
|
+
|
|
57
|
+
echo "=============================================================================="
|
|
58
|
+
echo "==> [OFFLOADED] Command output exceeded threshold ($LINE_COUNT lines > $THRESHOLD_LINES lines)."
|
|
59
|
+
echo "==> Full log written to disk: file://$(pwd)/$LOG_FILE"
|
|
60
|
+
echo "=============================================================================="
|
|
61
|
+
|
|
62
|
+
head -n "$HEAD_LINES" "$LOG_FILE"
|
|
63
|
+
|
|
64
|
+
echo ""
|
|
65
|
+
echo "... [TRUNCATED $(($LINE_COUNT - THRESHOLD_LINES)) LINES] ..."
|
|
66
|
+
echo "Read file://$LOG_FILE to view the full execution history."
|
|
67
|
+
echo ""
|
|
68
|
+
|
|
69
|
+
tail -n "$TAIL_LINES" "$LOG_FILE"
|
|
70
|
+
fi
|
|
71
|
+
|
|
72
|
+
exit $EXIT_CODE
|
package/scripts/run-evals.sh
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
#!/usr/bin/env bash
|
|
2
|
-
set -euo pipefail
|
|
3
|
-
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
set -euo pipefail
|
|
3
|
+
|
|
4
4
|
repo_root="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
|
5
5
|
skill_root="$repo_root/.codex/skills"
|
|
6
6
|
harness_dir="$skill_root/genesis-harness"
|
|
@@ -8,35 +8,44 @@ skill_names=(
|
|
|
8
8
|
genesis-harness
|
|
9
9
|
genesis-new-design
|
|
10
10
|
genesis-upgrade-design
|
|
11
|
-
architecture
|
|
12
|
-
planning
|
|
13
|
-
codebase-map
|
|
14
|
-
design-spec
|
|
15
|
-
api-contract
|
|
11
|
+
genesis-architecture
|
|
12
|
+
genesis-planning
|
|
13
|
+
genesis-codebase-map
|
|
14
|
+
genesis-design-spec
|
|
15
|
+
genesis-api-contract
|
|
16
16
|
ui-ux-test-skill
|
|
17
|
-
harness-engineering
|
|
18
|
-
ai-provider
|
|
19
|
-
pipeline-orchestration
|
|
20
|
-
research
|
|
21
|
-
docs
|
|
22
|
-
release
|
|
17
|
+
genesis-harness-engineering
|
|
18
|
+
genesis-ai-provider
|
|
19
|
+
genesis-pipeline-orchestration
|
|
20
|
+
genesis-research
|
|
21
|
+
genesis-docs
|
|
22
|
+
genesis-release
|
|
23
|
+
genesis-api-sync
|
|
24
|
+
genesis-debug-guide
|
|
25
|
+
genesis-docs-automation
|
|
26
|
+
genesis-spec-propagation
|
|
27
|
+
genesis-release-orchestration
|
|
28
|
+
genesis-performance-profiling
|
|
29
|
+
genesis-observability-automation
|
|
30
|
+
genesis-research-first
|
|
31
|
+
spec-impact-engine
|
|
23
32
|
)
|
|
24
|
-
|
|
25
|
-
fail() {
|
|
26
|
-
echo "eval failed: $*" >&2
|
|
27
|
-
exit 1
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
assert_file() {
|
|
31
|
-
[ -f "$1" ] || fail "missing file: ${1#$repo_root/}"
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
assert_contains() {
|
|
35
|
-
local file="$1"
|
|
36
|
-
local text="$2"
|
|
37
|
-
grep -q -- "$text" "$file" || fail "missing '$text' in ${file#$repo_root/}"
|
|
38
|
-
}
|
|
39
|
-
|
|
33
|
+
|
|
34
|
+
fail() {
|
|
35
|
+
echo "eval failed: $*" >&2
|
|
36
|
+
exit 1
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
assert_file() {
|
|
40
|
+
[ -f "$1" ] || fail "missing file: ${1#$repo_root/}"
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
assert_contains() {
|
|
44
|
+
local file="$1"
|
|
45
|
+
local text="$2"
|
|
46
|
+
grep -q -- "$text" "$file" || fail "missing '$text' in ${file#$repo_root/}"
|
|
47
|
+
}
|
|
48
|
+
|
|
40
49
|
assert_file "$repo_root/.codex-plugin/plugin.json"
|
|
41
50
|
assert_contains "$repo_root/.codex-plugin/plugin.json" '"skills"'
|
|
42
51
|
assert_contains "$repo_root/.codex-plugin/plugin.json" '"genesis-skill-set"'
|
|
@@ -49,10 +58,28 @@ done
|
|
|
49
58
|
for skill_name in "${skill_names[@]}"; do
|
|
50
59
|
assert_file "$skill_root/$skill_name/SKILL.md"
|
|
51
60
|
assert_file "$skill_root/$skill_name/agents/openai.yaml"
|
|
52
|
-
|
|
61
|
+
|
|
62
|
+
expected_name="$skill_name"
|
|
63
|
+
case "$skill_name" in
|
|
64
|
+
genesis-architecture) expected_name="architecture-skill" ;;
|
|
65
|
+
genesis-planning) expected_name="planning-skill" ;;
|
|
66
|
+
genesis-codebase-map) expected_name="codebase-map-skill" ;;
|
|
67
|
+
genesis-design-spec) expected_name="design-spec-skill" ;;
|
|
68
|
+
genesis-api-contract) expected_name="api-contract-skill" ;;
|
|
69
|
+
genesis-harness-engineering) expected_name="harness-engineering-skill" ;;
|
|
70
|
+
genesis-ai-provider) expected_name="ai-provider-skill" ;;
|
|
71
|
+
genesis-pipeline-orchestration) expected_name="pipeline-orchestration-skill" ;;
|
|
72
|
+
genesis-research) expected_name="research-skill" ;;
|
|
73
|
+
genesis-docs) expected_name="docs-skill" ;;
|
|
74
|
+
genesis-release) expected_name="release-skill" ;;
|
|
75
|
+
genesis-api-sync) expected_name="api-sync-skill" ;;
|
|
76
|
+
genesis-debug-guide) expected_name="debug-guide-skill" ;;
|
|
77
|
+
esac
|
|
78
|
+
|
|
79
|
+
assert_contains "$skill_root/$skill_name/SKILL.md" "name: $expected_name"
|
|
53
80
|
done
|
|
54
|
-
|
|
55
|
-
assert_contains "$repo_root/scripts/install.sh" '--target agents|legacy|both'
|
|
81
|
+
|
|
82
|
+
assert_contains "$repo_root/scripts/install.sh" '--target agents|legacy|both'
|
|
56
83
|
assert_contains "$repo_root/scripts/uninstall.sh" '--target agents|legacy|both'
|
|
57
84
|
assert_contains "$repo_root/bin/genesis-harness.js" '--target agents|legacy|both'
|
|
58
85
|
assert_contains "$repo_root/package.json" '".codex-plugin"'
|
|
@@ -61,20 +88,20 @@ assert_contains "$repo_root/package.json" '"contracts"'
|
|
|
61
88
|
assert_contains "$repo_root/package.json" '"fixtures"'
|
|
62
89
|
assert_contains "$repo_root/package.json" '"playwright"'
|
|
63
90
|
assert_contains "$repo_root/package.json" '"observability"'
|
|
64
|
-
assert_contains "$repo_root/README.md" '.
|
|
91
|
+
assert_contains "$repo_root/README.md" '.codex/skills/'
|
|
65
92
|
|
|
66
93
|
for skill_name in "${skill_names[@]}"; do
|
|
67
94
|
assert_contains "$repo_root/bin/genesis-harness.js" "$skill_name"
|
|
68
95
|
assert_contains "$repo_root/scripts/install.sh" "$skill_name"
|
|
69
96
|
assert_contains "$repo_root/scripts/uninstall.sh" "$skill_name"
|
|
70
97
|
done
|
|
71
|
-
|
|
72
|
-
tmp="$(mktemp -d)"
|
|
73
|
-
cleanup() {
|
|
74
|
-
rm -rf "$tmp"
|
|
75
|
-
}
|
|
76
|
-
trap cleanup EXIT
|
|
77
|
-
|
|
98
|
+
|
|
99
|
+
tmp="$(mktemp -d)"
|
|
100
|
+
cleanup() {
|
|
101
|
+
rm -rf "$tmp"
|
|
102
|
+
}
|
|
103
|
+
trap cleanup EXIT
|
|
104
|
+
|
|
78
105
|
CODEX_HOME="$tmp/codex" GENESIS_HARNESS_HOME="$tmp/agents" bash "$repo_root/scripts/install.sh" --target both >/dev/null
|
|
79
106
|
for skill_name in "${skill_names[@]}"; do
|
|
80
107
|
[ -f "$tmp/agents/skills/$skill_name/SKILL.md" ] || fail "agents install target missing: $skill_name"
|
|
@@ -87,5 +114,5 @@ for skill_name in "${skill_names[@]}" project-genesis-harness; do
|
|
|
87
114
|
[ ! -e "$tmp/agents/skills/$skill_name" ] || fail "agents uninstall target remains: $skill_name"
|
|
88
115
|
[ ! -e "$tmp/codex/skills/$skill_name" ] || fail "legacy uninstall target remains: $skill_name"
|
|
89
116
|
done
|
|
90
|
-
|
|
91
|
-
echo "evals passed"
|
|
117
|
+
|
|
118
|
+
echo "evals passed"
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# ==============================================================================
|
|
3
|
+
# Genesis Codex Harness — Ralph Loop (Verify-Fix) Orchestrator
|
|
4
|
+
# ==============================================================================
|
|
5
|
+
# Executes verification commands, tracks iteration counts to prevent infinite loops,
|
|
6
|
+
# and logs diagnostic failure reports to disk for step resumption.
|
|
7
|
+
# Enforces the self-verification safety invariant.
|
|
8
|
+
# ==============================================================================
|
|
9
|
+
|
|
10
|
+
set -uo pipefail
|
|
11
|
+
|
|
12
|
+
MAX_ITERATIONS=5
|
|
13
|
+
PLANNING_DIR=".planning"
|
|
14
|
+
LOOP_COUNT_FILE="$PLANNING_DIR/VERIFY_LOOP_COUNT"
|
|
15
|
+
FAILURE_LOG="$PLANNING_DIR/LAST_VERIFICATION_FAILURE.md"
|
|
16
|
+
|
|
17
|
+
usage() {
|
|
18
|
+
echo "Usage: $0 [--max-iterations N] <verification_command> [args...]" >&2
|
|
19
|
+
exit 2
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
if [ "$#" -eq 0 ]; then
|
|
23
|
+
usage
|
|
24
|
+
fi
|
|
25
|
+
|
|
26
|
+
if [ "$1" = "--max-iterations" ]; then
|
|
27
|
+
MAX_ITERATIONS="$2"
|
|
28
|
+
shift 2
|
|
29
|
+
fi
|
|
30
|
+
|
|
31
|
+
if [ "$#" -eq 0 ]; then
|
|
32
|
+
usage
|
|
33
|
+
fi
|
|
34
|
+
|
|
35
|
+
mkdir -p "$PLANNING_DIR"
|
|
36
|
+
|
|
37
|
+
# Initialize loop count
|
|
38
|
+
CURRENT_ITERATION=1
|
|
39
|
+
if [ -f "$LOOP_COUNT_FILE" ]; then
|
|
40
|
+
CURRENT_ITERATION=$(cat "$LOOP_COUNT_FILE")
|
|
41
|
+
CURRENT_ITERATION=$((CURRENT_ITERATION + 1))
|
|
42
|
+
fi
|
|
43
|
+
|
|
44
|
+
echo "$CURRENT_ITERATION" > "$LOOP_COUNT_FILE"
|
|
45
|
+
|
|
46
|
+
echo "==> [VERIFY LOOP] Iteration $CURRENT_ITERATION of $MAX_ITERATIONS"
|
|
47
|
+
|
|
48
|
+
if [ "$CURRENT_ITERATION" -gt "$MAX_ITERATIONS" ]; then
|
|
49
|
+
echo "=============================================================================="
|
|
50
|
+
echo "==> [BLOCKED] Verify-Fix loop exceeded maximum iteration count ($MAX_ITERATIONS)."
|
|
51
|
+
echo "==> Potentially stuck in an infinite loop. Halting for human intervention."
|
|
52
|
+
echo "=============================================================================="
|
|
53
|
+
rm -f "$LOOP_COUNT_FILE"
|
|
54
|
+
exit 99
|
|
55
|
+
fi
|
|
56
|
+
|
|
57
|
+
# Execute verification command
|
|
58
|
+
set +e
|
|
59
|
+
"$@" > "$FAILURE_LOG" 2>&1
|
|
60
|
+
EXIT_CODE=$?
|
|
61
|
+
set -e
|
|
62
|
+
|
|
63
|
+
if [ $EXIT_CODE -eq 0 ]; then
|
|
64
|
+
echo "==> [VERIFY LOOP] Pass! Verification completed successfully."
|
|
65
|
+
rm -f "$LOOP_COUNT_FILE"
|
|
66
|
+
rm -f "$FAILURE_LOG"
|
|
67
|
+
else
|
|
68
|
+
echo "=============================================================================="
|
|
69
|
+
echo "==> [FAILURE] Verification failed with exit code $EXIT_CODE."
|
|
70
|
+
echo "==> Failure diagnostic written to: file://$(pwd)/$FAILURE_LOG"
|
|
71
|
+
echo "==> Please inspect the log, fix the root cause, and re-run verification."
|
|
72
|
+
echo "=============================================================================="
|
|
73
|
+
fi
|
|
74
|
+
|
|
75
|
+
exit $EXIT_CODE
|
package/scripts/uninstall.sh
CHANGED
|
@@ -1,55 +1,64 @@
|
|
|
1
|
-
#!/usr/bin/env bash
|
|
2
|
-
set -euo pipefail
|
|
3
|
-
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
set -euo pipefail
|
|
3
|
+
|
|
4
4
|
skill_names=(
|
|
5
5
|
genesis-harness
|
|
6
6
|
genesis-new-design
|
|
7
7
|
genesis-upgrade-design
|
|
8
|
-
architecture
|
|
9
|
-
planning
|
|
10
|
-
codebase-map
|
|
11
|
-
design-spec
|
|
12
|
-
api-contract
|
|
8
|
+
genesis-architecture
|
|
9
|
+
genesis-planning
|
|
10
|
+
genesis-codebase-map
|
|
11
|
+
genesis-design-spec
|
|
12
|
+
genesis-api-contract
|
|
13
13
|
ui-ux-test-skill
|
|
14
|
-
harness-engineering
|
|
15
|
-
ai-provider
|
|
16
|
-
pipeline-orchestration
|
|
17
|
-
research
|
|
18
|
-
docs
|
|
19
|
-
release
|
|
14
|
+
genesis-harness-engineering
|
|
15
|
+
genesis-ai-provider
|
|
16
|
+
genesis-pipeline-orchestration
|
|
17
|
+
genesis-research
|
|
18
|
+
genesis-docs
|
|
19
|
+
genesis-release
|
|
20
|
+
genesis-api-sync
|
|
21
|
+
genesis-debug-guide
|
|
22
|
+
genesis-docs-automation
|
|
23
|
+
genesis-spec-propagation
|
|
24
|
+
genesis-release-orchestration
|
|
25
|
+
genesis-performance-profiling
|
|
26
|
+
genesis-observability-automation
|
|
27
|
+
genesis-research-first
|
|
28
|
+
spec-impact-engine
|
|
20
29
|
project-genesis-harness
|
|
21
30
|
)
|
|
22
31
|
codex_home="${CODEX_HOME:-$HOME/.codex}"
|
|
23
32
|
agents_home="${GENESIS_HARNESS_HOME:-$HOME/.agents}"
|
|
24
|
-
target="both"
|
|
25
|
-
|
|
26
|
-
usage() {
|
|
27
|
-
echo "Usage: $0 [--target agents|legacy|both]" >&2
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
while [ "$#" -gt 0 ]; do
|
|
31
|
-
case "$1" in
|
|
32
|
-
--target)
|
|
33
|
-
target="${2:-}"
|
|
34
|
-
[ -n "$target" ] || { usage; exit 2; }
|
|
35
|
-
shift 2
|
|
36
|
-
;;
|
|
37
|
-
--help|-h)
|
|
38
|
-
usage
|
|
39
|
-
exit 0
|
|
40
|
-
;;
|
|
41
|
-
*)
|
|
42
|
-
usage
|
|
43
|
-
exit 2
|
|
44
|
-
;;
|
|
45
|
-
esac
|
|
46
|
-
done
|
|
47
|
-
|
|
48
|
-
case "$target" in
|
|
49
|
-
agents|legacy|both) ;;
|
|
50
|
-
*) usage; exit 2 ;;
|
|
51
|
-
esac
|
|
52
|
-
|
|
33
|
+
target="both"
|
|
34
|
+
|
|
35
|
+
usage() {
|
|
36
|
+
echo "Usage: $0 [--target agents|legacy|both]" >&2
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
while [ "$#" -gt 0 ]; do
|
|
40
|
+
case "$1" in
|
|
41
|
+
--target)
|
|
42
|
+
target="${2:-}"
|
|
43
|
+
[ -n "$target" ] || { usage; exit 2; }
|
|
44
|
+
shift 2
|
|
45
|
+
;;
|
|
46
|
+
--help|-h)
|
|
47
|
+
usage
|
|
48
|
+
exit 0
|
|
49
|
+
;;
|
|
50
|
+
*)
|
|
51
|
+
usage
|
|
52
|
+
exit 2
|
|
53
|
+
;;
|
|
54
|
+
esac
|
|
55
|
+
done
|
|
56
|
+
|
|
57
|
+
case "$target" in
|
|
58
|
+
agents|legacy|both) ;;
|
|
59
|
+
*) usage; exit 2 ;;
|
|
60
|
+
esac
|
|
61
|
+
|
|
53
62
|
remove_one() {
|
|
54
63
|
local target_root="$1"
|
|
55
64
|
for skill_name in "${skill_names[@]}"; do
|