@the-agenticflow/openflows 0.1.6 → 0.1.8-dev.230.5aa03a0

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.
Files changed (87) hide show
  1. package/bin/openflows-dashboard.js +1 -1
  2. package/bin/openflows-setup.js +1 -1
  3. package/bin/openflows.js +4 -286
  4. package/package.json +2 -12
  5. package/scripts/install.js +47 -209
  6. package/.env.example +0 -60
  7. package/README.md +0 -217
  8. package/bin/LICENSE +0 -21
  9. package/bin/README.md +0 -535
  10. package/bin/agentflow-bin +0 -0
  11. package/bin/agentflow-dashboard-bin +0 -0
  12. package/bin/agentflow-doctor-bin +0 -0
  13. package/bin/agentflow-setup-bin +0 -0
  14. package/bin/orchestration/agent/agents/forge.agent.md +0 -110
  15. package/bin/orchestration/agent/agents/lore.agent.md +0 -27
  16. package/bin/orchestration/agent/agents/nexus.agent.md +0 -201
  17. package/bin/orchestration/agent/agents/sentinel.agent.md +0 -96
  18. package/bin/orchestration/agent/agents/vessel.agent.md +0 -38
  19. package/bin/orchestration/agent/registry.json +0 -10
  20. package/bin/orchestration/agent/standards/CODING.md +0 -22
  21. package/bin/orchestration/agent/standards/REVIEW.md +0 -15
  22. package/bin/orchestration/agent/standards/SECURITY.md +0 -72
  23. package/bin/orchestration/plugin/commands/assign.md +0 -45
  24. package/bin/orchestration/plugin/commands/check-ci.md +0 -26
  25. package/bin/orchestration/plugin/commands/document-pr.md +0 -32
  26. package/bin/orchestration/plugin/commands/gate-approve.md +0 -39
  27. package/bin/orchestration/plugin/commands/handoff.md +0 -75
  28. package/bin/orchestration/plugin/commands/merge.md +0 -47
  29. package/bin/orchestration/plugin/commands/plan.md +0 -66
  30. package/bin/orchestration/plugin/commands/segment-done.md +0 -50
  31. package/bin/orchestration/plugin/commands/status-check.md +0 -28
  32. package/bin/orchestration/plugin/commands/status.md +0 -94
  33. package/bin/orchestration/plugin/commands/update-changelog.md +0 -37
  34. package/bin/orchestration/plugin/hooks/forge/post_write_lint.sh +0 -76
  35. package/bin/orchestration/plugin/hooks/forge/pre_bash_guard.sh +0 -81
  36. package/bin/orchestration/plugin/hooks/forge/pre_compact_handoff.sh +0 -28
  37. package/bin/orchestration/plugin/hooks/forge/pre_write_check.sh +0 -77
  38. package/bin/orchestration/plugin/hooks/forge/session_start.sh +0 -59
  39. package/bin/orchestration/plugin/hooks/forge/stop_require_artifact.sh +0 -75
  40. package/bin/orchestration/plugin/hooks/lore/session-start.sh +0 -13
  41. package/bin/orchestration/plugin/hooks/nexus/init-session.sh +0 -23
  42. package/bin/orchestration/plugin/hooks/nexus/log-decision.sh +0 -10
  43. package/bin/orchestration/plugin/hooks/sentinel/post_write_validate.sh +0 -59
  44. package/bin/orchestration/plugin/hooks/sentinel/pre_bash_readonly_guard.sh +0 -107
  45. package/bin/orchestration/plugin/hooks/sentinel/session_start.sh +0 -74
  46. package/bin/orchestration/plugin/hooks/sentinel/stop_require_eval.sh +0 -57
  47. package/bin/orchestration/plugin/hooks/vessel/log-merge-status.sh +0 -7
  48. package/bin/orchestration/plugin/hooks/vessel/session-start.sh +0 -14
  49. package/bin/orchestration/plugin/mcp/mcp.json.template +0 -26
  50. package/bin/orchestration/plugin/plugin.json +0 -66
  51. package/bin/orchestration/plugin/skills/forge-algorithmic-art.md +0 -24
  52. package/bin/orchestration/plugin/skills/forge-canvas-design.md +0 -25
  53. package/bin/orchestration/plugin/skills/forge-coding.md +0 -161
  54. package/bin/orchestration/plugin/skills/forge-frontend-design.md +0 -30
  55. package/bin/orchestration/plugin/skills/forge-mcp-builder.md +0 -37
  56. package/bin/orchestration/plugin/skills/forge-planning.md +0 -102
  57. package/bin/orchestration/plugin/skills/forge-skill-creator.md +0 -25
  58. package/bin/orchestration/plugin/skills/forge-web-artifacts-builder.md +0 -29
  59. package/bin/orchestration/plugin/skills/lore-brand-guidelines.md +0 -33
  60. package/bin/orchestration/plugin/skills/lore-changelog.md +0 -69
  61. package/bin/orchestration/plugin/skills/lore-doc-coauthoring.md +0 -33
  62. package/bin/orchestration/plugin/skills/lore-documentation.md +0 -57
  63. package/bin/orchestration/plugin/skills/lore-docx.md +0 -20
  64. package/bin/orchestration/plugin/skills/lore-pdf.md +0 -20
  65. package/bin/orchestration/plugin/skills/lore-pptx.md +0 -23
  66. package/bin/orchestration/plugin/skills/lore-theme-factory.md +0 -20
  67. package/bin/orchestration/plugin/skills/lore-xlsx.md +0 -20
  68. package/bin/orchestration/plugin/skills/nexus-doc-coauthoring.md +0 -21
  69. package/bin/orchestration/plugin/skills/nexus-internal-comms.md +0 -28
  70. package/bin/orchestration/plugin/skills/nexus-orchestration.md +0 -63
  71. package/bin/orchestration/plugin/skills/nexus-skill-creator.md +0 -15
  72. package/bin/orchestration/plugin/skills/nexus-slack-gif-creator.md +0 -21
  73. package/bin/orchestration/plugin/skills/nexus-triage.md +0 -56
  74. package/bin/orchestration/plugin/skills/nexus-xlsx.md +0 -20
  75. package/bin/orchestration/plugin/skills/sentinel-algorithmic-art.md +0 -20
  76. package/bin/orchestration/plugin/skills/sentinel-criteria.md +0 -115
  77. package/bin/orchestration/plugin/skills/sentinel-frontend-design.md +0 -20
  78. package/bin/orchestration/plugin/skills/sentinel-review.md +0 -124
  79. package/bin/orchestration/plugin/skills/sentinel-web-artifacts-builder.md +0 -20
  80. package/bin/orchestration/plugin/skills/sentinel-webapp-testing.md +0 -34
  81. package/bin/orchestration/plugin/skills/shared-claude-api.md +0 -25
  82. package/bin/orchestration/plugin/skills/vessel-ci-gate.md +0 -68
  83. package/bin/orchestration/plugin/skills/vessel-internal-comms.md +0 -20
  84. package/bin/orchestration/plugin/skills/vessel-mcp-builder.md +0 -21
  85. package/bin/orchestration/plugin/skills/vessel-merge-protocol.md +0 -113
  86. package/bin/orchestration/plugin/skills/vessel-pdf.md +0 -20
  87. package/bin/orchestration/plugin/skills/vessel-webapp-testing.md +0 -34
@@ -1,59 +0,0 @@
1
- #!/bin/bash
2
- # Runs when FORGE starts a new session
3
- # This hook runs at the beginning of every FORGE session
4
-
5
- PAIR_ID="${SPRINTLESS_PAIR_ID}"
6
- TICKET_ID="${SPRINTLESS_TICKET_ID}"
7
- SHARED="${SPRINTLESS_SHARED}"
8
- WORKTREE="${SPRINTLESS_WORKTREE}"
9
-
10
- # Log session start to shared event log
11
- echo "[$(date -u +%Y-%m-%dT%H:%M:%SZ)] forge-${PAIR_ID} session_start ticket=${TICKET_ID}" \
12
- >> "${SHARED}/../events.log"
13
-
14
- # Check if this is a resume (HANDOFF.md exists)
15
- if [ -f "${SHARED}/HANDOFF.md" ]; then
16
- echo "=========================================="
17
- echo " RESUME MODE: HANDOFF.md found"
18
- echo "=========================================="
19
- echo ""
20
- echo "Read ${SHARED}/HANDOFF.md before doing anything else."
21
- echo "Continue from the exact next step described in the handoff."
22
- echo ""
23
- echo "Key things to check:"
24
- echo " 1. Which segments are already complete"
25
- echo " 2. Which segment is in progress"
26
- echo " 3. Decisions already made (do not contradict)"
27
- echo " 4. Files already written (do not rewrite)"
28
- echo " 5. Exact next step to take"
29
- echo ""
30
- else
31
- echo "=========================================="
32
- echo " NEW SESSION: No handoff found"
33
- echo "=========================================="
34
- echo ""
35
- echo "Starting fresh on ticket ${TICKET_ID}"
36
- echo ""
37
- echo "IMPORTANT - Directory Structure:"
38
- echo " CURRENT DIR (worktree): ${WORKTREE}"
39
- echo " -> Write ALL source code, tests, package.json here"
40
- echo " SHARED DIR: ${SHARED}"
41
- echo " -> Write PLAN.md, WORKLOG.md, STATUS.json here"
42
- echo ""
43
- echo "First steps:"
44
- echo " 1. Read ${SHARED}/TICKET.md to understand the task"
45
- echo " 2. Read ${SHARED}/TASK.md for specific instructions"
46
- echo " 3. Use /plan command to create ${SHARED}/PLAN.md"
47
- echo " 4. Wait for CONTRACT.md from SENTINEL"
48
- echo ""
49
- fi
50
-
51
- # Show current state
52
- echo "Environment:"
53
- echo " PAIR_ID: ${PAIR_ID}"
54
- echo " TICKET_ID: ${TICKET_ID}"
55
- echo " WORKTREE: ${WORKTREE}"
56
- echo " SHARED: ${SHARED}"
57
- echo ""
58
-
59
- exit 0
@@ -1,75 +0,0 @@
1
- #!/bin/bash
2
- # Runs on Stop - FORGE cannot exit without a terminal artifact
3
- # This ensures FORGE always leaves a clear state for the harness
4
- #
5
- # Environment:
6
- # SPRINTLESS_SHARED - the shared directory
7
-
8
- SHARED="${SPRINTLESS_SHARED}"
9
-
10
- # Accept: STATUS.json written (done or blocked)
11
- if [ -f "${SHARED}/STATUS.json" ]; then
12
- # Validate it has required fields
13
- if command -v python3 &> /dev/null; then
14
- VALID=$(python3 -c "
15
- import json, sys
16
- try:
17
- s = json.load(open('${SHARED}/STATUS.json'))
18
- required = ['status','pair','ticket_id','files_changed']
19
- missing = [k for k in required if k not in s]
20
- valid_statuses = ['PR_OPENED','BLOCKED','FUEL_EXHAUSTED','PENDING_REVIEW']
21
- # Note: IMPLEMENTATION_COMPLETE and COMPLETED are NOT valid terminal statuses
22
- # FORGE must push and create PR (PR_OPENED) or explicitly block
23
- if missing:
24
- print(f'missing: {missing}')
25
- sys.exit(1)
26
- if s['status'] not in valid_statuses:
27
- print(f'invalid status: {s[\"status\"]}')
28
- sys.exit(1)
29
- except Exception as e:
30
- print(str(e))
31
- sys.exit(1)
32
- " 2>&1)
33
- if [ $? -ne 0 ]; then
34
- echo "STATUS.json exists but is invalid: ${VALID}"
35
- echo "Fix STATUS.json before exiting."
36
- echo ""
37
- echo "Required fields: status, pair, ticket_id, files_changed"
38
- echo "Valid statuses: PR_OPENED, BLOCKED, FUEL_EXHAUSTED, PENDING_REVIEW"
39
- exit 2
40
- fi
41
- fi
42
- exit 0
43
- fi
44
-
45
- # Accept: HANDOFF.md written (context reset in progress)
46
- if [ -f "${SHARED}/HANDOFF.md" ]; then
47
- # Verify HANDOFF.md has required sections
48
- if grep -q "## Exact next step" "${SHARED}/HANDOFF.md"; then
49
- exit 0
50
- else
51
- echo "HANDOFF.md is incomplete. It must contain '## Exact next step'."
52
- echo ""
53
- echo "Required sections in HANDOFF.md:"
54
- echo " - ## Completed Segments"
55
- echo " - ## Decisions"
56
- echo " - ## Files Changed"
57
- echo " - ## Exact next step"
58
- exit 2
59
- fi
60
- fi
61
-
62
- # Neither exists - block exit
63
- echo "=============================================="
64
- echo " BLOCKED: Cannot exit without terminal artifact"
65
- echo "=============================================="
66
- echo ""
67
- echo "You must write either:"
68
- echo " - ${SHARED}/STATUS.json (if done or blocked)"
69
- echo " - ${SHARED}/HANDOFF.md (if context reset needed)"
70
- echo ""
71
- echo "Use /status command if your work is complete."
72
- echo "Use /handoff command if you need a context reset."
73
- echo ""
74
-
75
- exit 2
@@ -1,13 +0,0 @@
1
- #!/bin/bash
2
- # LORE Session Start Hook
3
- # Initializes the documenter session
4
-
5
- echo "=========================================="
6
- echo "LORE Session Starting"
7
- echo "=========================================="
8
- echo ""
9
- echo "Checking for recently merged PRs..."
10
-
11
- # Lore monitors merged PRs and updates documentation
12
-
13
- exit 0
@@ -1,23 +0,0 @@
1
- #!/bin/bash
2
- # NEXUS Session Start Hook
3
- # Initializes the orchestrator session
4
-
5
- echo "NEXUS session starting..."
6
- echo "Reading registry from: ${AGENTFLOW_REGISTRY:-.agent/registry.json}"
7
- echo "Store path: ${AGENTFLOW_STORE:-.agent/store.json}"
8
-
9
- # Check if jq is installed
10
- if ! command -v jq &> /dev/null; then
11
- echo "ERROR: jq is not installed. Please install it to use NEXUS."
12
- exit 1
13
- fi
14
-
15
- # Check for pending command gate items
16
- if [ -n "${AGENTFLOW_STORE}" ] && [ -f "${AGENTFLOW_STORE}" ]; then
17
- GATE_PENDING=$(jq -r '.command_gate | length // 0' "${AGENTFLOW_STORE}" 2>/dev/null || echo "0")
18
- if [ "$GATE_PENDING" -gt 0 ]; then
19
- echo "WARNING: ${GATE_PENDING} pending command(s) awaiting approval"
20
- fi
21
- fi
22
-
23
- exit 0
@@ -1,10 +0,0 @@
1
- #!/bin/bash
2
- # NEXUS Stop Hook
3
- # Logs the decision made this session
4
-
5
- echo "NEXUS session ending. Decision logged."
6
-
7
- # The actual decision is captured in the shared store
8
- # This hook ensures we have a log entry
9
-
10
- exit 0
@@ -1,59 +0,0 @@
1
- #!/bin/bash
2
- # SENTINEL Post-Write Validation Hook
3
- # Validates that eval files have correct structure
4
- #
5
- # Environment:
6
- # SPRINTLESS_SHARED - the shared directory
7
- # CLAUDE_FILE - the file that was just written (injected by Claude Code)
8
-
9
- SHARED="${SPRINTLESS_SHARED}"
10
- FILE="${CLAUDE_FILE:-}"
11
-
12
- # Only validate eval files
13
- if [[ ! "$FILE" =~ -eval\.md$ ]] && [[ ! "$FILE" =~ final-review\.md$ ]]; then
14
- exit 0
15
- fi
16
-
17
- echo "Validating evaluation file: ${FILE}"
18
- echo ""
19
-
20
- # Check required sections
21
- MISSING=""
22
-
23
- if ! grep -q "## Summary" "$FILE"; then
24
- MISSING="${MISSING}Summary, "
25
- fi
26
-
27
- if ! grep -q "## Tests Run" "$FILE" && ! grep -q "## Test Results" "$FILE"; then
28
- MISSING="${MISSING}Tests Run, "
29
- fi
30
-
31
- if ! grep -q "## Verdict" "$FILE"; then
32
- MISSING="${MISSING}Verdict, "
33
- fi
34
-
35
- # Check verdict is valid
36
- VERDICT=$(grep -oP '(?<=## Verdict\n)[A-Z_]+' "$FILE" 2>/dev/null || echo "")
37
- if [ -n "$VERDICT" ]; then
38
- if [ "$VERDICT" != "APPROVED" ] && [ "$VERDICT" != "NEEDS_WORK" ]; then
39
- echo "ERROR: Invalid verdict '${VERDICT}'. Must be APPROVED or NEEDS_WORK."
40
- exit 2
41
- fi
42
- fi
43
-
44
- if [ -n "$MISSING" ]; then
45
- echo "ERROR: Missing required sections: ${MISSING%,*}"
46
- echo ""
47
- echo "Required sections for eval files:"
48
- echo " - ## Summary"
49
- echo " - ## Tests Run (or ## Test Results)"
50
- echo " - ## Verdict (APPROVED or NEEDS_WORK)"
51
- echo ""
52
- echo "If NEEDS_WORK, also include:"
53
- echo " - ## Issues Found"
54
- echo " - ## Required Fixes"
55
- exit 2
56
- fi
57
-
58
- echo "Validation passed."
59
- exit 0
@@ -1,107 +0,0 @@
1
- #!/bin/bash
2
- # SENTINEL Pre-Bash Guard Hook
3
- # Enforces read-only mode - SENTINEL cannot modify source files
4
- #
5
- # Environment:
6
- # SPRINTLESS_WORKTREE - the worktree path (source code)
7
- # SPRINTLESS_SHARED - the shared directory (allowed writes)
8
- # CLAUDE_BASH_COMMAND - the command about to run (injected by Claude Code)
9
-
10
- WORKTREE="${SPRINTLESS_WORKTREE:-}"
11
- SHARED="${SPRINTLESS_SHARED:-}"
12
- CMD="${CLAUDE_BASH_COMMAND:-}"
13
-
14
- # If no command, allow
15
- if [ -z "$CMD" ]; then
16
- exit 0
17
- fi
18
-
19
- # Blocked commands - SENTINEL cannot use these at all
20
- BLOCKED_PATTERNS=(
21
- "git "
22
- "git"
23
- "rm "
24
- "rm"
25
- "sudo "
26
- "npm install"
27
- "pip install"
28
- "cargo install"
29
- "mv "
30
- "cp "
31
- "chmod"
32
- "chown"
33
- )
34
-
35
- for pattern in "${BLOCKED_PATTERNS[@]}"; do
36
- if [[ "$CMD" == *"$pattern"* ]]; then
37
- echo "=============================================="
38
- echo " BLOCKED: Command not allowed for SENTINEL"
39
- echo "=============================================="
40
- echo ""
41
- echo "Command: ${CMD}"
42
- echo ""
43
- echo "SENTINEL is read-only. You cannot:"
44
- echo " - Use git commands"
45
- echo " - Delete files (rm)"
46
- echo " - Move or copy files"
47
- echo " - Install packages"
48
- echo " - Modify permissions"
49
- echo ""
50
- echo "You CAN:"
51
- echo " - Read files (cat, head, tail, less)"
52
- echo " - Run tests and linters"
53
- echo " - Search code (grep, find)"
54
- echo " - Write to shared/ directory"
55
- echo ""
56
- exit 2
57
- fi
58
- done
59
-
60
- # Check if command writes to source tree
61
- if [ -n "$WORKTREE" ]; then
62
- # Patterns that write files
63
- WRITE_PATTERNS=(
64
- " > "
65
- " >> "
66
- " 2> "
67
- " | tee "
68
- "sed -i"
69
- "awk -i"
70
- "truncate"
71
- "dd if="
72
- )
73
-
74
- for pattern in "${WRITE_PATTERNS[@]}"; do
75
- if [[ "$CMD" == *"$pattern"* ]]; then
76
- # Check if the redirect target is in worktree
77
- # Extract the file path after the redirect
78
- REDIRECT_FILE=$(echo "$CMD" | grep -oP '(?<=[<>])\s*\S+' | head -1 | tr -d ' ')
79
-
80
- if [ -n "$REDIRECT_FILE" ]; then
81
- # Get absolute path
82
- if [[ "$REDIRECT_FILE" != /* ]]; then
83
- REDIRECT_FILE="${WORKTREE}/${REDIRECT_FILE}"
84
- fi
85
-
86
- # Check if it's inside worktree but NOT in shared
87
- if [[ "$REDIRECT_FILE" == "$WORKTREE"* ]] && [[ "$REDIRECT_FILE" != *"$SHARED"* ]]; then
88
- echo "=============================================="
89
- echo " BLOCKED: Cannot write to source tree"
90
- echo "=============================================="
91
- echo ""
92
- echo "Command: ${CMD}"
93
- echo ""
94
- echo "SENTINEL can only write to: ${SHARED}"
95
- echo "Attempted write to: ${REDIRECT_FILE}"
96
- echo ""
97
- echo "All your outputs (eval files, reviews) go in shared/."
98
- echo ""
99
- exit 2
100
- fi
101
- fi
102
- fi
103
- done
104
- fi
105
-
106
- # Allow the command
107
- exit 0
@@ -1,74 +0,0 @@
1
- #!/bin/bash
2
- # SENTINEL Session Start Hook
3
- # Determines segment mode and reads the correct input artifacts
4
- #
5
- # Environment:
6
- # SPRINTLESS_SHARED - the shared directory
7
- # SPRINTLESS_SEGMENT - segment number (set by harness)
8
-
9
- SHARED="${SPRINTLESS_SHARED}"
10
- SEGMENT="${SPRINTLESS_SEGMENT:-1}"
11
-
12
- echo "=============================================="
13
- echo " SENTINEL SESSION STARTED"
14
- echo "=============================================="
15
- echo ""
16
- echo "Segment: ${SEGMENT}"
17
- echo ""
18
-
19
- # Determine mode based on what files exist
20
- if [ "${SEGMENT}" = "final" ] || [ -f "${SHARED}/DONE.md" ]; then
21
- echo "MODE: FINAL_REVIEW"
22
- echo ""
23
- echo "Reading DONE.md to verify completion..."
24
- if [ -f "${SHARED}/DONE.md" ]; then
25
- echo "--- DONE.md ---"
26
- head -50 "${SHARED}/DONE.md"
27
- echo "..."
28
- else
29
- echo "ERROR: DONE.md not found. Cannot perform final review."
30
- exit 1
31
- fi
32
- elif [ -f "${SHARED}/PLAN.md" ]; then
33
- echo "MODE: SEGMENT_REVIEW"
34
- echo ""
35
- echo "Reading PLAN.md and segment inputs..."
36
- echo ""
37
- echo "--- PLAN.md (first 30 lines) ---"
38
- head -30 "${SHARED}/PLAN.md"
39
- echo "..."
40
- echo ""
41
- if [ -f "${SHARED}/WORKLOG.md" ]; then
42
- echo "--- WORKLOG.md (last 20 lines) ---"
43
- tail -20 "${SHARED}/WORKLOG.md"
44
- echo ""
45
- fi
46
- else
47
- echo "MODE: UNKNOWN - No PLAN.md found"
48
- echo "This may be an initial setup. Check TICKET.md and TASK.md."
49
- if [ -f "${SHARED}/TICKET.md" ]; then
50
- echo ""
51
- echo "--- TICKET.md ---"
52
- cat "${SHARED}/TICKET.md"
53
- fi
54
- fi
55
-
56
- echo ""
57
- echo "=============================================="
58
- echo " YOUR MISSION"
59
- echo "=============================================="
60
- echo ""
61
- echo "1. Read the segment changes from WORKLOG.md"
62
- echo "2. Run tests and linters to verify quality"
63
- echo "3. Write your evaluation to segment-${SEGMENT}-eval.md"
64
- echo ""
65
- echo "Evaluation must include:"
66
- echo " - ## Summary"
67
- echo " - ## Tests Run"
68
- echo " - ## Issues Found (if any)"
69
- echo " - ## Verdict (APPROVED / NEEDS_WORK)"
70
- echo ""
71
- echo "If NEEDS_WORK, list specific issues that must be fixed."
72
- echo ""
73
-
74
- exit 0
@@ -1,57 +0,0 @@
1
- #!/bin/bash
2
- # SENTINEL Stop Hook
3
- # Ensures SENTINEL writes an eval file before exiting
4
- #
5
- # Environment:
6
- # SPRINTLESS_SHARED - the shared directory
7
- # SPRINTLESS_SEGMENT - segment number (set by harness)
8
-
9
- SHARED="${SPRINTLESS_SHARED}"
10
- SEGMENT="${SPRINTLESS_SEGMENT:-1}"
11
-
12
- # Determine expected eval file
13
- if [ "${SEGMENT}" = "final" ]; then
14
- EVAL_FILE="${SHARED}/final-review.md"
15
- else
16
- EVAL_FILE="${SHARED}/segment-${SEGMENT}-eval.md"
17
- fi
18
-
19
- # Check if eval file exists
20
- if [ -f "$EVAL_FILE" ]; then
21
- # Validate it has a verdict
22
- if grep -q "## Verdict" "$EVAL_FILE"; then
23
- VERDICT=$(grep -A1 "## Verdict" "$EVAL_FILE" | tail -1 | tr -d ' ')
24
-
25
- if [ "$VERDICT" = "APPROVED" ] || [ "$VERDICT" = "NEEDS_WORK" ]; then
26
- echo "Evaluation complete: ${VERDICT}"
27
- exit 0
28
- else
29
- echo "ERROR: Invalid verdict in ${EVAL_FILE}"
30
- echo "Verdict must be APPROVED or NEEDS_WORK, got: ${VERDICT}"
31
- exit 2
32
- fi
33
- else
34
- echo "ERROR: ${EVAL_FILE} missing ## Verdict section"
35
- exit 2
36
- fi
37
- fi
38
-
39
- # No eval file - block exit
40
- echo "=============================================="
41
- echo " BLOCKED: Cannot exit without evaluation"
42
- echo "=============================================="
43
- echo ""
44
- echo "You must write your evaluation to:"
45
- echo " ${EVAL_FILE}"
46
- echo ""
47
- echo "Required sections:"
48
- echo " - ## Summary"
49
- echo " - ## Tests Run"
50
- echo " - ## Issues Found (if any)"
51
- echo " - ## Verdict (APPROVED or NEEDS_WORK)"
52
- echo ""
53
- echo "If NEEDS_WORK, include:"
54
- echo " - ## Required Fixes (specific, actionable items)"
55
- echo ""
56
-
57
- exit 2
@@ -1,7 +0,0 @@
1
- #!/bin/bash
2
- # VESSEL Stop Hook
3
- # Logs merge status on exit
4
-
5
- echo "VESSEL session ending. Merge status logged."
6
-
7
- exit 0
@@ -1,14 +0,0 @@
1
- #!/bin/bash
2
- # VESSEL Session Start Hook
3
- # Initializes the deployer session
4
-
5
- echo "=========================================="
6
- echo "VESSEL Session Starting"
7
- echo "=========================================="
8
- echo ""
9
- echo "Checking for open PRs from forge branches..."
10
-
11
- # Vessel monitors open PRs and CI status
12
- # This would typically query GitHub API
13
-
14
- exit 0
@@ -1,26 +0,0 @@
1
- {
2
- "mcpServers": {
3
- "github": {
4
- "command": "npx",
5
- "args": ["-y", "@modelcontextprotocol/server-github"],
6
- "env": {
7
- "GITHUB_PERSONAL_ACCESS_TOKEN": "${SPRINTLESS_GITHUB_TOKEN}"
8
- }
9
- },
10
- "filesystem": {
11
- "command": "npx",
12
- "args": [
13
- "-y",
14
- "@modelcontextprotocol/server-filesystem",
15
- "${SPRINTLESS_WORKTREE}"
16
- ]
17
- },
18
- "shell": {
19
- "command": "shell-mcp-server",
20
- "args": [
21
- "--allowlist",
22
- "orchestration/agent/tooling/run-tests.sh,cargo clippy,cargo test,npx eslint,npx jest,ruff check"
23
- ]
24
- }
25
- }
26
- }
@@ -1,66 +0,0 @@
1
- {
2
- "name": "orchestration",
3
- "version": "3.0.0",
4
- "description": "Autonomous agent pair tooling for AgentFlow FORGE-SENTINEL architecture",
5
- "skills": {
6
- "forge": [
7
- "skills/forge-coding.md",
8
- "skills/forge-planning.md",
9
- "skills/forge-frontend-design.md",
10
- "skills/forge-mcp-builder.md",
11
- "skills/forge-skill-creator.md",
12
- "skills/forge-canvas-design.md",
13
- "skills/forge-web-artifacts-builder.md",
14
- "skills/forge-algorithmic-art.md",
15
- "skills/shared-claude-api.md"
16
- ],
17
- "sentinel": [
18
- "skills/sentinel-review.md",
19
- "skills/sentinel-criteria.md",
20
- "skills/sentinel-webapp-testing.md",
21
- "skills/sentinel-frontend-design.md",
22
- "skills/sentinel-web-artifacts-builder.md",
23
- "skills/sentinel-algorithmic-art.md",
24
- "skills/shared-claude-api.md"
25
- ],
26
- "nexus": [
27
- "skills/nexus-orchestration.md",
28
- "skills/nexus-triage.md",
29
- "skills/nexus-internal-comms.md",
30
- "skills/nexus-doc-coauthoring.md",
31
- "skills/nexus-skill-creator.md",
32
- "skills/nexus-xlsx.md",
33
- "skills/nexus-slack-gif-creator.md",
34
- "skills/shared-claude-api.md"
35
- ],
36
- "vessel": [
37
- "skills/vessel-ci-gate.md",
38
- "skills/vessel-merge-protocol.md",
39
- "skills/vessel-webapp-testing.md",
40
- "skills/vessel-internal-comms.md",
41
- "skills/vessel-mcp-builder.md",
42
- "skills/vessel-pdf.md",
43
- "skills/shared-claude-api.md"
44
- ],
45
- "lore": [
46
- "skills/lore-documentation.md",
47
- "skills/lore-changelog.md",
48
- "skills/lore-doc-coauthoring.md",
49
- "skills/lore-brand-guidelines.md",
50
- "skills/lore-theme-factory.md",
51
- "skills/lore-docx.md",
52
- "skills/lore-pptx.md",
53
- "skills/lore-xlsx.md",
54
- "skills/lore-pdf.md",
55
- "skills/shared-claude-api.md"
56
- ]
57
- },
58
- "hooks": {
59
- "forge": "hooks/forge/",
60
- "sentinel": "hooks/sentinel/",
61
- "nexus": "hooks/nexus/",
62
- "vessel": "hooks/vessel/",
63
- "lore": "hooks/lore/"
64
- },
65
- "commands": "commands/"
66
- }
@@ -1,24 +0,0 @@
1
- ---
2
- name: algorithmic-art
3
- description: Create generative, code-based art and visualizations using P5.JS and algorithmic principles.
4
- ---
5
-
6
- # FORGE Algorithmic Art Skill
7
-
8
- Use this skill to create unique, generative visual artifacts or to visualize complex data structures algorithmically.
9
-
10
- ## Algorithmic Philosophy
11
-
12
- - **Conceptual Seed**: Start with a mathematical or natural phenomenon (e.g., "Voronoi Diagrams", "Lindenmayer Systems", "Fluid Dynamics").
13
- - **Deduce Style**: Choose an aesthetic (e.g., Generative Minimalism, Digital Brutalism, Organic Complexity).
14
- - **Technical Implementation**: Use P5.JS to implement the visual logic.
15
-
16
- ## Craftsmanship Requirements
17
-
18
- - **Efficiency**: Favor procedural generation over static assets.
19
- - **Interactivity**: Where appropriate, make the art responsive to user input.
20
- - **Clean Code**: Structure your P5.JS scripts for readability and modularity.
21
-
22
- ## Output Format
23
-
24
- Deliver your implementation in a self-contained HTML/JS artifact.
@@ -1,25 +0,0 @@
1
- ---
2
- name: canvas-design
3
- description: Visual philosophy and design principles for creating impactful visual content.
4
- ---
5
-
6
- # FORGE Canvas Design Skill
7
-
8
- Use this skill to establish a strong visual philosophy before creating visual artifacts, posters, or UI layouts.
9
-
10
- ## Visual Philosophy Creation
11
-
12
- - **Deduce the Conceptual Seed**: What is the core idea? (e.g., "The Precision of a Swiss Watch", "The Organic Flow of Water").
13
- - **Establish Principles**: define constraints (e.g., "Only 3 colors", "Strict Grid", "Asymmetric Balance").
14
- - **Deduce Style**: Use specific visual descriptors (e.g., Brutalist, Geometric, Soft Minimalism).
15
-
16
- ## Essential Principles
17
-
18
- - **Contrast**: Use size, color, and weight to create impact.
19
- - **Hierarchy**: Guide the viewer's eye to the most important element first.
20
- - **Negative Space**: Give your design room to breathe. Don't crowd the canvas.
21
- - **Intentionality**: Every element must have a purpose. If it doesn't add value, remove it.
22
-
23
- ## Execution
24
-
25
- Once the philosophy is established, apply it consistently across all components of the artifact.