@the-agenticflow/openflows 0.1.3 → 0.1.6
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/.env.example +60 -0
- package/README.md +156 -113
- package/bin/LICENSE +21 -0
- package/bin/README.md +535 -0
- package/bin/agentflow-bin +0 -0
- package/bin/agentflow-dashboard-bin +0 -0
- package/bin/agentflow-doctor-bin +0 -0
- package/bin/agentflow-setup-bin +0 -0
- package/bin/openflows.js +285 -3
- package/bin/orchestration/agent/agents/forge.agent.md +110 -0
- package/bin/orchestration/agent/agents/lore.agent.md +27 -0
- package/bin/orchestration/agent/agents/nexus.agent.md +201 -0
- package/bin/orchestration/agent/agents/sentinel.agent.md +96 -0
- package/bin/orchestration/agent/agents/vessel.agent.md +38 -0
- package/bin/orchestration/agent/registry.json +10 -0
- package/bin/orchestration/agent/standards/CODING.md +22 -0
- package/bin/orchestration/agent/standards/REVIEW.md +15 -0
- package/bin/orchestration/agent/standards/SECURITY.md +72 -0
- package/bin/orchestration/plugin/commands/assign.md +45 -0
- package/bin/orchestration/plugin/commands/check-ci.md +26 -0
- package/bin/orchestration/plugin/commands/document-pr.md +32 -0
- package/bin/orchestration/plugin/commands/gate-approve.md +39 -0
- package/bin/orchestration/plugin/commands/handoff.md +75 -0
- package/bin/orchestration/plugin/commands/merge.md +47 -0
- package/bin/orchestration/plugin/commands/plan.md +66 -0
- package/bin/orchestration/plugin/commands/segment-done.md +50 -0
- package/bin/orchestration/plugin/commands/status-check.md +28 -0
- package/bin/orchestration/plugin/commands/status.md +94 -0
- package/bin/orchestration/plugin/commands/update-changelog.md +37 -0
- package/bin/orchestration/plugin/hooks/forge/post_write_lint.sh +76 -0
- package/bin/orchestration/plugin/hooks/forge/pre_bash_guard.sh +81 -0
- package/bin/orchestration/plugin/hooks/forge/pre_compact_handoff.sh +28 -0
- package/bin/orchestration/plugin/hooks/forge/pre_write_check.sh +77 -0
- package/bin/orchestration/plugin/hooks/forge/session_start.sh +59 -0
- package/bin/orchestration/plugin/hooks/forge/stop_require_artifact.sh +75 -0
- package/bin/orchestration/plugin/hooks/lore/session-start.sh +13 -0
- package/bin/orchestration/plugin/hooks/nexus/init-session.sh +23 -0
- package/bin/orchestration/plugin/hooks/nexus/log-decision.sh +10 -0
- package/bin/orchestration/plugin/hooks/sentinel/post_write_validate.sh +59 -0
- package/bin/orchestration/plugin/hooks/sentinel/pre_bash_readonly_guard.sh +107 -0
- package/bin/orchestration/plugin/hooks/sentinel/session_start.sh +74 -0
- package/bin/orchestration/plugin/hooks/sentinel/stop_require_eval.sh +57 -0
- package/bin/orchestration/plugin/hooks/vessel/log-merge-status.sh +7 -0
- package/bin/orchestration/plugin/hooks/vessel/session-start.sh +14 -0
- package/bin/orchestration/plugin/mcp/mcp.json.template +26 -0
- package/bin/orchestration/plugin/plugin.json +66 -0
- package/bin/orchestration/plugin/skills/forge-algorithmic-art.md +24 -0
- package/bin/orchestration/plugin/skills/forge-canvas-design.md +25 -0
- package/bin/orchestration/plugin/skills/forge-coding.md +161 -0
- package/bin/orchestration/plugin/skills/forge-frontend-design.md +30 -0
- package/bin/orchestration/plugin/skills/forge-mcp-builder.md +37 -0
- package/bin/orchestration/plugin/skills/forge-planning.md +102 -0
- package/bin/orchestration/plugin/skills/forge-skill-creator.md +25 -0
- package/bin/orchestration/plugin/skills/forge-web-artifacts-builder.md +29 -0
- package/bin/orchestration/plugin/skills/lore-brand-guidelines.md +33 -0
- package/bin/orchestration/plugin/skills/lore-changelog.md +69 -0
- package/bin/orchestration/plugin/skills/lore-doc-coauthoring.md +33 -0
- package/bin/orchestration/plugin/skills/lore-documentation.md +57 -0
- package/bin/orchestration/plugin/skills/lore-docx.md +20 -0
- package/bin/orchestration/plugin/skills/lore-pdf.md +20 -0
- package/bin/orchestration/plugin/skills/lore-pptx.md +23 -0
- package/bin/orchestration/plugin/skills/lore-theme-factory.md +20 -0
- package/bin/orchestration/plugin/skills/lore-xlsx.md +20 -0
- package/bin/orchestration/plugin/skills/nexus-doc-coauthoring.md +21 -0
- package/bin/orchestration/plugin/skills/nexus-internal-comms.md +28 -0
- package/bin/orchestration/plugin/skills/nexus-orchestration.md +63 -0
- package/bin/orchestration/plugin/skills/nexus-skill-creator.md +15 -0
- package/bin/orchestration/plugin/skills/nexus-slack-gif-creator.md +21 -0
- package/bin/orchestration/plugin/skills/nexus-triage.md +56 -0
- package/bin/orchestration/plugin/skills/nexus-xlsx.md +20 -0
- package/bin/orchestration/plugin/skills/sentinel-algorithmic-art.md +20 -0
- package/bin/orchestration/plugin/skills/sentinel-criteria.md +115 -0
- package/bin/orchestration/plugin/skills/sentinel-frontend-design.md +20 -0
- package/bin/orchestration/plugin/skills/sentinel-review.md +124 -0
- package/bin/orchestration/plugin/skills/sentinel-web-artifacts-builder.md +20 -0
- package/bin/orchestration/plugin/skills/sentinel-webapp-testing.md +34 -0
- package/bin/orchestration/plugin/skills/shared-claude-api.md +25 -0
- package/bin/orchestration/plugin/skills/vessel-ci-gate.md +68 -0
- package/bin/orchestration/plugin/skills/vessel-internal-comms.md +20 -0
- package/bin/orchestration/plugin/skills/vessel-mcp-builder.md +21 -0
- package/bin/orchestration/plugin/skills/vessel-merge-protocol.md +113 -0
- package/bin/orchestration/plugin/skills/vessel-pdf.md +20 -0
- package/bin/orchestration/plugin/skills/vessel-webapp-testing.md +34 -0
- package/package.json +8 -3
- package/scripts/install.js +162 -9
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: xlsx
|
|
3
|
+
description: Analysis of project metrics, timelines, and budgets using Excel automation.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# NEXUS Metrics Analysis Skill
|
|
7
|
+
|
|
8
|
+
Use this skill to track and visualize project health through quantitative data analysis.
|
|
9
|
+
|
|
10
|
+
## Metrics Tracking
|
|
11
|
+
|
|
12
|
+
- **Velocity**: Track task completion rates and sprint progress.
|
|
13
|
+
- **Budgeting**: Keep tabs on project costs and resource allocation.
|
|
14
|
+
- **Timeline Modeling**: Generate "what-if" scenarios for project schedules.
|
|
15
|
+
|
|
16
|
+
## Workflow
|
|
17
|
+
|
|
18
|
+
1. Collect raw data from session logs or external trackers.
|
|
19
|
+
2. Use formulas to calculate trends and health indicators.
|
|
20
|
+
3. Present summaries in a clear, actionable format for stakeholders.
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: algorithmic-art
|
|
3
|
+
description: Use generative art principles to visualize code quality, coverage, and complex failure states.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# SENTINEL Visual Diagnostics Skill
|
|
7
|
+
|
|
8
|
+
Use this skill to create algorithmic visualizations of system health, testing results, or code complexity.
|
|
9
|
+
|
|
10
|
+
## Visualizing Data
|
|
11
|
+
|
|
12
|
+
- **Code Coverage**: Represent files as recursive treemaps where color indicates coverage depth.
|
|
13
|
+
- **Failure Heatmaps**: Visualize test suite failures across the codebase chronologically or structurally.
|
|
14
|
+
- **Complexity Clouds**: Use particle systems to represent cyclomatic complexity in large modules.
|
|
15
|
+
|
|
16
|
+
## Goals
|
|
17
|
+
|
|
18
|
+
- **Scannability**: Make complex system states readable at a glance.
|
|
19
|
+
- **Impact**: Use motion and color to draw attention to critical bottlenecks or regressions.
|
|
20
|
+
- **Diagnostic Clarity**: Ensure the visualization directly correlates with underlying metrics.
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
# SENTINEL Evaluation Criteria
|
|
2
|
+
|
|
3
|
+
## The five criteria - all must pass for any approval
|
|
4
|
+
|
|
5
|
+
### 1. Correctness
|
|
6
|
+
|
|
7
|
+
Does the implementation correctly handle all cases described in CONTRACT.md?
|
|
8
|
+
Does it handle the error paths, edge cases, and boundary conditions?
|
|
9
|
+
|
|
10
|
+
**FAIL:** any CONTRACT criterion not met, any obvious logic error
|
|
11
|
+
|
|
12
|
+
### 2. Test coverage
|
|
13
|
+
|
|
14
|
+
Are all changed files covered by tests?
|
|
15
|
+
Does every new function have at least one test for the happy path
|
|
16
|
+
and one for the primary error path?
|
|
17
|
+
|
|
18
|
+
**FAIL:** any changed file with no tests, any new function with no test
|
|
19
|
+
|
|
20
|
+
### 3. Standards compliance
|
|
21
|
+
|
|
22
|
+
Does the implementation follow `orchestration/agent/standards/CODING.md`?
|
|
23
|
+
Does it use the patterns in `orchestration/agent/arch/patterns.md`?
|
|
24
|
+
Does it respect the API contracts in `orchestration/agent/arch/api-contracts.md`?
|
|
25
|
+
|
|
26
|
+
**FAIL:** any violation of the team's written standards
|
|
27
|
+
|
|
28
|
+
### 4. Code quality
|
|
29
|
+
|
|
30
|
+
Is the code readable? Are names clear? Is complexity justified?
|
|
31
|
+
Is there duplication that should be extracted?
|
|
32
|
+
|
|
33
|
+
**NOTE:** This criterion is advisory - it cannot block alone.
|
|
34
|
+
It informs feedback but a single quality concern is not a blocker.
|
|
35
|
+
|
|
36
|
+
### 5. No regressions
|
|
37
|
+
|
|
38
|
+
Do all existing tests still pass?
|
|
39
|
+
Has any existing behaviour been changed without explicit ticket scope?
|
|
40
|
+
|
|
41
|
+
**FAIL:** any previously passing test now failing
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
## Evaluation checklist
|
|
46
|
+
|
|
47
|
+
Use this checklist for every segment review:
|
|
48
|
+
|
|
49
|
+
```markdown
|
|
50
|
+
## Evaluation Checklist
|
|
51
|
+
|
|
52
|
+
### Correctness
|
|
53
|
+
- [ ] All CONTRACT criteria verified
|
|
54
|
+
- [ ] Error paths handled
|
|
55
|
+
- [ ] Edge cases covered
|
|
56
|
+
- [ ] Boundary conditions tested
|
|
57
|
+
|
|
58
|
+
### Test Coverage
|
|
59
|
+
- [ ] All changed files have tests
|
|
60
|
+
- [ ] New functions have happy path tests
|
|
61
|
+
- [ ] New functions have error path tests
|
|
62
|
+
- [ ] Integration tests where needed
|
|
63
|
+
|
|
64
|
+
### Standards Compliance
|
|
65
|
+
- [ ] CODING.md rules followed
|
|
66
|
+
- [ ] patterns.md patterns used
|
|
67
|
+
- [ ] API contracts respected
|
|
68
|
+
- [ ] Naming conventions followed
|
|
69
|
+
|
|
70
|
+
### Code Quality
|
|
71
|
+
- [ ] Readable and clear
|
|
72
|
+
- [ ] No unnecessary duplication
|
|
73
|
+
- [ ] Appropriate abstraction level
|
|
74
|
+
- [ ] Comments where needed
|
|
75
|
+
|
|
76
|
+
### No Regressions
|
|
77
|
+
- [ ] All existing tests pass
|
|
78
|
+
- [ ] No unintended behavior changes
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
## Severity levels
|
|
84
|
+
|
|
85
|
+
When writing feedback, indicate severity:
|
|
86
|
+
|
|
87
|
+
- **BLOCKER:** Must be fixed before approval (correctness, test coverage, standards)
|
|
88
|
+
- **MAJOR:** Should be fixed, but approval possible if addressed in next segment
|
|
89
|
+
- **MINOR:** Advisory, can be deferred
|
|
90
|
+
|
|
91
|
+
### Example with severity
|
|
92
|
+
|
|
93
|
+
```markdown
|
|
94
|
+
## Specific feedback
|
|
95
|
+
|
|
96
|
+
- `src/auth/login.ts:23` [BLOCKER]: Missing error handling for `fetchUser()`. Required: Add try-catch with `AppError('USER_NOT_FOUND', 404)`
|
|
97
|
+
|
|
98
|
+
- `src/auth/login.ts:67` [MAJOR]: Hardcoded timeout value. Required: Use `config.timeout` from `src/config.ts`
|
|
99
|
+
|
|
100
|
+
- `src/auth/login.ts:89` [MINOR]: Variable name `tmp` is unclear. Consider: `userSession`
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
---
|
|
104
|
+
|
|
105
|
+
## Quick decision guide
|
|
106
|
+
|
|
107
|
+
| Situation | Verdict |
|
|
108
|
+
|-----------|---------|
|
|
109
|
+
| All criteria pass | APPROVED |
|
|
110
|
+
| Any BLOCKER items | CHANGES_REQUESTED |
|
|
111
|
+
| Multiple MAJOR items | CHANGES_REQUESTED |
|
|
112
|
+
| Only MINOR items | APPROVED (with notes) |
|
|
113
|
+
| Tests failing | CHANGES_REQUESTED |
|
|
114
|
+
| Lint warnings | CHANGES_REQUESTED |
|
|
115
|
+
| Standards violation | CHANGES_REQUESTED |
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: frontend-design
|
|
3
|
+
description: Reference for evaluating UI quality and aesthetic consistency in frontend reviews.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# SENTINEL Frontend Design Critique Skill
|
|
7
|
+
|
|
8
|
+
Use this skill to evaluate the design quality of PRs and artifacts against project standards.
|
|
9
|
+
|
|
10
|
+
## Critique Criteria
|
|
11
|
+
|
|
12
|
+
- **Aesthetic Direction**: Does it follow a clear, bold direction? Is it cohesive?
|
|
13
|
+
- **Typography Quality**: Are font choices intentional and well-paired? Is it distinct from generic defaults?
|
|
14
|
+
- **Color Harmony**: Is the palette professional and balanced? Is there sufficient contrast?
|
|
15
|
+
- **Visual Polish**: Check for spacing consistency, border-radius harmony, and attention to detail.
|
|
16
|
+
- **Avoidance of "AI Slop"**: Does it feel designed, or just generated? Watch out for overused patterns (purple gradients, Inter-only stacks).
|
|
17
|
+
|
|
18
|
+
## Reporting Feedback
|
|
19
|
+
|
|
20
|
+
Provide constructive, specific feedback on how to elevate the design. Refer to the `Forge Frontend Design` standards.
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
# SENTINEL Review Skill
|
|
2
|
+
|
|
3
|
+
## Your role
|
|
4
|
+
|
|
5
|
+
You are SENTINEL. You are spawned for a single purpose: evaluate one segment.
|
|
6
|
+
You have no history. You have no future. You only have this segment.
|
|
7
|
+
|
|
8
|
+
## Your disposition
|
|
9
|
+
|
|
10
|
+
- Be skeptical
|
|
11
|
+
- Be specific
|
|
12
|
+
- Be constructive
|
|
13
|
+
|
|
14
|
+
FORGE is your partner, not your adversary.
|
|
15
|
+
Your feedback must be actionable - FORGE must know exactly what to fix.
|
|
16
|
+
|
|
17
|
+
## Reviewing a plan (PLAN.md)
|
|
18
|
+
|
|
19
|
+
Check:
|
|
20
|
+
1. Does the plan address all acceptance criteria in TICKET.md?
|
|
21
|
+
2. Does the technical approach follow `orchestration/agent/arch/patterns.md`?
|
|
22
|
+
3. Are all relevant files identified?
|
|
23
|
+
4. Is the definition of done specific and testable?
|
|
24
|
+
5. Is there an explicit out-of-scope list?
|
|
25
|
+
|
|
26
|
+
Write `CONTRACT.md` with:
|
|
27
|
+
- `status: AGREED` if the plan is sound
|
|
28
|
+
- `status: ISSUES` if there are problems (list specific objections)
|
|
29
|
+
|
|
30
|
+
## Reviewing a segment
|
|
31
|
+
|
|
32
|
+
Check:
|
|
33
|
+
1. Run tests: `orchestration/agent/tooling/run-tests.sh` - they must all pass
|
|
34
|
+
2. Run linter on changed files - zero warnings
|
|
35
|
+
3. Read every changed file against the CONTRACT criteria
|
|
36
|
+
4. Check error handling - every error path covered?
|
|
37
|
+
5. Check test coverage - is every new function tested?
|
|
38
|
+
6. Check standards compliance - CODING.md and patterns.md respected?
|
|
39
|
+
|
|
40
|
+
## Writing feedback
|
|
41
|
+
|
|
42
|
+
When writing `segment-N-eval.md` with `CHANGES_REQUESTED`:
|
|
43
|
+
|
|
44
|
+
- Every item must have: `file`, `line number`, `problem`, `required fix`
|
|
45
|
+
- Do NOT write vague feedback like "improve error handling"
|
|
46
|
+
- DO write: `src/auth/session.ts line 47: throws raw Error. Required: throw new AppError('SESSION_EXPIRED', 401) per CODING.md rule 3`
|
|
47
|
+
|
|
48
|
+
### Example segment eval
|
|
49
|
+
|
|
50
|
+
```markdown
|
|
51
|
+
# Segment 3 Evaluation
|
|
52
|
+
|
|
53
|
+
## Verdict
|
|
54
|
+
|
|
55
|
+
CHANGES_REQUESTED
|
|
56
|
+
|
|
57
|
+
## Specific feedback
|
|
58
|
+
|
|
59
|
+
- `src/auth/login.ts:23`: Missing error handling for `fetchUser()`. Required: Add try-catch with `AppError('USER_NOT_FOUND', 404)`
|
|
60
|
+
|
|
61
|
+
- `tests/auth/login.test.ts:45`: Test only covers happy path. Required: Add test for invalid credentials returning 401
|
|
62
|
+
|
|
63
|
+
- `src/auth/login.ts:67`: Hardcoded timeout value. Required: Use `config.timeout` from `src/config.ts`
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
## Final review
|
|
67
|
+
|
|
68
|
+
When all segments are approved, run the complete verification:
|
|
69
|
+
|
|
70
|
+
1. Full test suite via `orchestration/agent/tooling/run-tests.sh`
|
|
71
|
+
2. Full linter across entire project
|
|
72
|
+
3. Check every CONTRACT criterion is satisfied
|
|
73
|
+
4. Write `final-review.md` with `APPROVED` verdict and PR description
|
|
74
|
+
|
|
75
|
+
Your PR description becomes the actual PR body - make it informative.
|
|
76
|
+
|
|
77
|
+
### Example final review
|
|
78
|
+
|
|
79
|
+
```markdown
|
|
80
|
+
# Final Review
|
|
81
|
+
|
|
82
|
+
## Verdict
|
|
83
|
+
|
|
84
|
+
APPROVED
|
|
85
|
+
|
|
86
|
+
## Summary
|
|
87
|
+
|
|
88
|
+
This PR implements JWT-based authentication for the login endpoint, including:
|
|
89
|
+
- POST /auth/login endpoint with credential validation
|
|
90
|
+
- JWT token generation with configurable expiry
|
|
91
|
+
- Auth middleware for protected routes
|
|
92
|
+
- Comprehensive test coverage (12 new tests)
|
|
93
|
+
|
|
94
|
+
## PR description
|
|
95
|
+
|
|
96
|
+
[Title: [T-42] Add user authentication endpoint]
|
|
97
|
+
|
|
98
|
+
Implements JWT-based authentication for the login endpoint.
|
|
99
|
+
|
|
100
|
+
### Changes
|
|
101
|
+
- `src/auth/login.ts`: Login endpoint with credential validation
|
|
102
|
+
- `src/auth/jwt.ts`: JWT token generation and validation
|
|
103
|
+
- `src/middleware/auth.ts`: Auth middleware for protected routes
|
|
104
|
+
- `tests/auth/`: Comprehensive test coverage
|
|
105
|
+
|
|
106
|
+
### Testing
|
|
107
|
+
- 12 new tests added
|
|
108
|
+
- All existing tests still pass
|
|
109
|
+
- Manual testing completed
|
|
110
|
+
|
|
111
|
+
Closes #42
|
|
112
|
+
|
|
113
|
+
> **IMPORTANT**: The PR body MUST include `Closes #<issue_number>` (with `#` prefix, no colon) to auto-close the issue on merge.
|
|
114
|
+
> - Extract the issue number from `SPRINTLESS_TICKET_ID`: `T-004` → issue number `4`
|
|
115
|
+
> - Use: `Closes #4` (correct) — NOT `Closes: T-004` (wrong)
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
## Environment variables
|
|
119
|
+
|
|
120
|
+
- `SPRINTLESS_PAIR_ID` - the pair you're evaluating
|
|
121
|
+
- `SPRINTLESS_TICKET_ID` - the ticket being worked on
|
|
122
|
+
- `SPRINTLESS_SEGMENT` - segment number (empty for plan review, "final" for final review)
|
|
123
|
+
- `SPRINTLESS_SHARED` - the shared directory with artifacts
|
|
124
|
+
- `SPRINTLESS_WORKTREE` - the worktree to read files from
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: web-artifacts-builder
|
|
3
|
+
description: Skill for building reproduction environments and diagnostic dashboards for UI issues.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# SENTINEL Diagnostic Artifacts Skill
|
|
7
|
+
|
|
8
|
+
Use this skill to create visual dashboards or reproduction environments when debugging complex UI/UX issues.
|
|
9
|
+
|
|
10
|
+
## Usage Scenarios
|
|
11
|
+
|
|
12
|
+
- **Reproduction**: Build a minimal React artifact that demonstrates a reported bug.
|
|
13
|
+
- **Diagnostics**: Create a dashboard visualizing log data or state transitions for a failed session.
|
|
14
|
+
- **Comparison**: Show a side-by-side comparison of "Expected" vs "Actual" UI states.
|
|
15
|
+
|
|
16
|
+
## Best Practices
|
|
17
|
+
|
|
18
|
+
- Keep diagnostic artifacts focused on the issue at hand.
|
|
19
|
+
- Use clear visual indicators (red/green, status badges) to highlight problems.
|
|
20
|
+
- Ensure the reproduction is self-contained and easy for the user to view.
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: webapp-testing
|
|
3
|
+
description: Toolkit for interacting with and testing local web applications using Playwright.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Web Application Testing Skill
|
|
7
|
+
|
|
8
|
+
Use this skill to verify frontend functionality, debug UI behavior, and capture browser state for evaluation or deployment verification.
|
|
9
|
+
|
|
10
|
+
## Workflow
|
|
11
|
+
|
|
12
|
+
1. **Reconnaissance**:
|
|
13
|
+
- Navigate to the local server URL.
|
|
14
|
+
- Wait for `networkidle` state to ensure JS execution is complete.
|
|
15
|
+
- Inspect the rendered DOM or take a full-page screenshot.
|
|
16
|
+
|
|
17
|
+
2. **Identification**:
|
|
18
|
+
- Locate specific elements using descriptive selectors (`text=`, `role=`, CSS, or IDs).
|
|
19
|
+
- Use `page.locator()` and `all()` to discover interactive elements.
|
|
20
|
+
|
|
21
|
+
3. **Execution**:
|
|
22
|
+
- Write Playwright scripts to perform actions (click, type, navigate).
|
|
23
|
+
- Verify assertions and capture logs for debugging.
|
|
24
|
+
|
|
25
|
+
## Helper Pattern
|
|
26
|
+
|
|
27
|
+
When working with local servers, ensure the server is running correctly before beginning reconnaissance. If managing server lifecycles, wait for port availability.
|
|
28
|
+
|
|
29
|
+
## Best Practices
|
|
30
|
+
|
|
31
|
+
- **Synchronous Logic**: Use `playwright.sync_api` for cleaner script integration where applicable.
|
|
32
|
+
- **Headless Mode**: Always launch browsers in headless mode for server-side execution.
|
|
33
|
+
- **Waits**: Use `wait_for_selector` or specific network idle states instead of arbitrary timeouts.
|
|
34
|
+
- **Artifacts**: Capture screenshots and console logs to provide proof of verification.
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: claude-api
|
|
3
|
+
description: Technical reference for Claude-specific features and best practices.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Shared Claude API Skill
|
|
7
|
+
|
|
8
|
+
Use this reference to optimize interactions with the Claude LLM, utilizing advanced features for improved performance and cost-efficiency.
|
|
9
|
+
|
|
10
|
+
## Core Features
|
|
11
|
+
|
|
12
|
+
- **Thinking & Effort**: Adjust `thinking` parameters for complex reasoning tasks.
|
|
13
|
+
- **Prompt Caching**: Structure prompts to take advantage of caching for repetitive context.
|
|
14
|
+
- **Tool Use**: Follow best practices for tool definition and selection.
|
|
15
|
+
- **Streaming**: Handle streaming responses efficiently in the CLI/Frontend.
|
|
16
|
+
|
|
17
|
+
## Best Practices
|
|
18
|
+
|
|
19
|
+
- **System Prompting**: Provide clear, concise role definitions.
|
|
20
|
+
- **Context Management**: Be mindful of the context window; use summarization or trimming when necessary.
|
|
21
|
+
- **Output Formatting**: Request specific formats (JSON, Markdown) explicitly for deterministic processing.
|
|
22
|
+
|
|
23
|
+
## Managed Agents (Beta)
|
|
24
|
+
|
|
25
|
+
When coordinating with other agents, follow the established orchestration protocol defined in the `AgentFlow` system instructions.
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ci-gate
|
|
3
|
+
description: Skill for checking CI status and validating merge readiness
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# CI Gate Skill
|
|
7
|
+
|
|
8
|
+
## CI Readiness Pre-Check
|
|
9
|
+
|
|
10
|
+
**BEFORE polling CI status**, check if the repository has CI workflows configured:
|
|
11
|
+
|
|
12
|
+
1. Use `has_workflows` on the GitHub client to check if `.github/workflows/` exists
|
|
13
|
+
2. Check `ci_readiness` in the shared store if available
|
|
14
|
+
|
|
15
|
+
If **no CI workflows exist**:
|
|
16
|
+
- Do NOT poll CI status — there is nothing to poll
|
|
17
|
+
- Return `CiStatus::Success` immediately (empty check suites = pass by default)
|
|
18
|
+
- Emit a `ci_missing` event to alert NEXUS that CI setup is required
|
|
19
|
+
- Log a WARNING that the repository has no CI pipelines
|
|
20
|
+
|
|
21
|
+
This prevents VESSEL from spending polling cycles waiting for CI that will never arrive,
|
|
22
|
+
which causes watchdog timeouts and stalls the entire pair.
|
|
23
|
+
|
|
24
|
+
## CI Status Check
|
|
25
|
+
|
|
26
|
+
Use `check_ci_status` MCP tool to verify:
|
|
27
|
+
- All required checks passed
|
|
28
|
+
- No failing checks
|
|
29
|
+
- No pending checks (unless configured to allow)
|
|
30
|
+
|
|
31
|
+
## Required Checks
|
|
32
|
+
|
|
33
|
+
Typical required checks:
|
|
34
|
+
- Build: Compiles successfully
|
|
35
|
+
- Tests: All tests pass
|
|
36
|
+
- Lint: No lint errors
|
|
37
|
+
- Security: No vulnerabilities detected
|
|
38
|
+
|
|
39
|
+
## CI Status Values
|
|
40
|
+
|
|
41
|
+
| Status | Action |
|
|
42
|
+
|--------|--------|
|
|
43
|
+
| `success` | All checks passed |
|
|
44
|
+
| `failure` | One or more checks failed |
|
|
45
|
+
| `pending` | Checks still running |
|
|
46
|
+
| `unknown` | No CI configured — treat as `success` and alert NEXUS |
|
|
47
|
+
|
|
48
|
+
## Merge Readiness
|
|
49
|
+
|
|
50
|
+
PR is ready to merge when:
|
|
51
|
+
1. CI status is `success`
|
|
52
|
+
2. SENTINEL approval exists (final-review.md)
|
|
53
|
+
3. No merge conflicts
|
|
54
|
+
4. Branch is up to date with main
|
|
55
|
+
|
|
56
|
+
## Handling Failures
|
|
57
|
+
|
|
58
|
+
If CI fails:
|
|
59
|
+
1. Do NOT merge
|
|
60
|
+
2. Report failure to NEXUS
|
|
61
|
+
3. Return `deploy_failed` action with details
|
|
62
|
+
|
|
63
|
+
## Handling Pending
|
|
64
|
+
|
|
65
|
+
If CI is pending:
|
|
66
|
+
1. Wait and poll
|
|
67
|
+
2. Timeout after configured duration
|
|
68
|
+
3. Report timeout if exceeded
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: internal-comms
|
|
3
|
+
description: Tailored guidelines for deployment reports, incident logs, and release notes.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# VESSEL Deployment Communications Skill
|
|
7
|
+
|
|
8
|
+
Use this skill to communicate deployment outcomes and system health updates to the team.
|
|
9
|
+
|
|
10
|
+
## Formats
|
|
11
|
+
|
|
12
|
+
- **Deployment Summary**: SHA, Environment, Status (Success/Failure), and smoke test results.
|
|
13
|
+
- **Incident Logs**: Detailed timeline of deployment failures and recovery actions taken.
|
|
14
|
+
- **Release Notes**: Developer-focused summaries of what was deployed.
|
|
15
|
+
|
|
16
|
+
## Tonal Goals
|
|
17
|
+
|
|
18
|
+
- **Highly Informational**: Focus on raw data and outcomes.
|
|
19
|
+
- **Action-Oriented**: In case of failure, clearly state the rollback status or required human intervention.
|
|
20
|
+
- **Reliable**: Maintain a predictable format for automated parsing or quick human review.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: mcp-builder
|
|
3
|
+
description: Skilled management and extension of the deployment automation MCP environment.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# VESSEL Infrastructure MCP Skill
|
|
7
|
+
|
|
8
|
+
Use this skill to maintain and extend the MCP servers used for deployment automation and monitoring.
|
|
9
|
+
|
|
10
|
+
## Focus Areas
|
|
11
|
+
|
|
12
|
+
- **Transport Reliability**: Ensure Stdio/SSE connections to deployment tools are stable.
|
|
13
|
+
- **Tool Mapping**: Correctly map CLI tools (Docker, K8s, Terraform) to MCP tools.
|
|
14
|
+
- **Environment Safety**: Ensure MCP tools have minimal necessary permissions for the target environment.
|
|
15
|
+
- **Monitoring Tools**: Build tools for retrieving logs and metrics into the AgentFlow context.
|
|
16
|
+
|
|
17
|
+
## Workflow
|
|
18
|
+
|
|
19
|
+
1. Identify missing infrastructure visibility.
|
|
20
|
+
2. Direct Forge or self-implement a new MCP tool/resource.
|
|
21
|
+
3. Verify tool safety and reliability in a staging environment.
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: merge-protocol
|
|
3
|
+
description: Protocol for safely merging approved PRs
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Merge Protocol Skill
|
|
7
|
+
|
|
8
|
+
## Pre-Merge Checklist
|
|
9
|
+
|
|
10
|
+
Before merging, verify:
|
|
11
|
+
- [ ] CI status: success
|
|
12
|
+
- [ ] SENTINEL approval: final-review.md exists with APPROVED
|
|
13
|
+
- [ ] No merge conflicts
|
|
14
|
+
- [ ] Branch up to date with main (or rebased)
|
|
15
|
+
|
|
16
|
+
## Merge Process
|
|
17
|
+
|
|
18
|
+
### Step 1: Fetch Latest
|
|
19
|
+
```bash
|
|
20
|
+
git fetch origin main
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
### Step 2: Check Divergence
|
|
24
|
+
```bash
|
|
25
|
+
BEHIND=$(git rev-list --count HEAD..origin/main)
|
|
26
|
+
if [ "$BEHIND" -gt 0 ]; then
|
|
27
|
+
# Need rebase or merge
|
|
28
|
+
fi
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
### Step 3: Merge
|
|
32
|
+
Use `merge_pr` MCP tool with:
|
|
33
|
+
- Merge method: `squash` (recommended) or `merge`
|
|
34
|
+
- Commit message: From SENTINEL's PR description
|
|
35
|
+
|
|
36
|
+
### Step 4: Verify
|
|
37
|
+
- Confirm merge completed
|
|
38
|
+
- Confirm branch deleted (optional)
|
|
39
|
+
|
|
40
|
+
### Step 5: Sync Active Worktrees
|
|
41
|
+
|
|
42
|
+
After a successful merge into main, **all active FORGE worktrees MUST be rebased**
|
|
43
|
+
onto the updated main to prevent drift and merge conflicts.
|
|
44
|
+
|
|
45
|
+
**Policy:** No branch may fall behind main. All branches must be at main or ahead of main.
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
# Fetch the latest main (now including the merge we just performed)
|
|
49
|
+
git fetch origin main
|
|
50
|
+
|
|
51
|
+
# Sync every active worktree
|
|
52
|
+
for wt in $(git worktree list --porcelain | grep "^worktree" | cut -d' ' -f2); do
|
|
53
|
+
BRANCH=$(git -C "$wt" branch --show-current)
|
|
54
|
+
if [ "$BRANCH" != "main" ] && [ -n "$BRANCH" ]; then
|
|
55
|
+
BEHIND=$(git -C "$wt" rev-list --count "HEAD..origin/main" 2>/dev/null || echo "0")
|
|
56
|
+
if [ "$BEHIND" -gt 0 ]; then
|
|
57
|
+
echo "Syncing worktree $wt ($BRANCH) — $BEHIND commits behind main"
|
|
58
|
+
git -C "$wt" rebase origin/main
|
|
59
|
+
if [ $? -ne 0 ]; then
|
|
60
|
+
git -C "$wt" rebase --abort
|
|
61
|
+
echo "CONFLICT in $wt on branch $BRANCH — requires manual resolution"
|
|
62
|
+
# Report conflict to NEXUS
|
|
63
|
+
fi
|
|
64
|
+
else
|
|
65
|
+
echo "Worktree $wt ($BRANCH) is up to date"
|
|
66
|
+
fi
|
|
67
|
+
fi
|
|
68
|
+
done
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
Alternatively, use the dedicated sync script:
|
|
72
|
+
```bash
|
|
73
|
+
bash scripts/sync-worktrees.sh
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
**Conflict handling:**
|
|
77
|
+
- If rebase conflicts, **abort immediately** — do NOT attempt auto-resolution
|
|
78
|
+
- Report the conflict to NEXUS with the worktree path and branch name
|
|
79
|
+
- Set the affected worker's STATUS.json to `BLOCKED` with reason `REBASE_CONFLICT`
|
|
80
|
+
- A human or fresh FORGE instance must resolve the conflict
|
|
81
|
+
|
|
82
|
+
### Step 6: Report
|
|
83
|
+
- Emit merge event
|
|
84
|
+
- Update shared store with merge status
|
|
85
|
+
- Include worktree sync results in the report
|
|
86
|
+
|
|
87
|
+
## Merge Methods
|
|
88
|
+
|
|
89
|
+
| Method | Use When |
|
|
90
|
+
|--------|----------|
|
|
91
|
+
| `squash` | Single logical change (recommended) |
|
|
92
|
+
| `merge` | Multiple commits should be preserved |
|
|
93
|
+
| `rebase` | Linear history preferred |
|
|
94
|
+
|
|
95
|
+
## Post-Merge
|
|
96
|
+
|
|
97
|
+
1. **Sync**: Rebase all active worktrees onto updated main (Step 5)
|
|
98
|
+
2. **Cleanup**: Remove worktree for the merged branch only
|
|
99
|
+
3. **Notify**: Emit event for NEXUS (include sync results)
|
|
100
|
+
4. **Update**: Set worker slot to Idle
|
|
101
|
+
|
|
102
|
+
## Failure Handling
|
|
103
|
+
|
|
104
|
+
If merge fails:
|
|
105
|
+
1. Check for conflicts
|
|
106
|
+
2. Report to NEXUS with `deploy_failed`
|
|
107
|
+
3. Do NOT attempt to resolve conflicts automatically
|
|
108
|
+
|
|
109
|
+
If worktree sync fails (rebase conflict):
|
|
110
|
+
1. Abort the rebase immediately
|
|
111
|
+
2. Report to NEXUS with worktree path and branch name
|
|
112
|
+
3. Set affected worker STATUS.json to `BLOCKED` with reason `REBASE_CONFLICT`
|
|
113
|
+
4. Do NOT attempt to resolve conflicts automatically — assign a fresh FORGE or human
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: pdf
|
|
3
|
+
description: Generating formal, secure reports for deployment cycles and infrastructure mapping.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# VESSEL Infrastructure Reporting Skill
|
|
7
|
+
|
|
8
|
+
Use this skill to generate tamper-proof, high-quality reports on infrastructure state and deployment history.
|
|
9
|
+
|
|
10
|
+
## Reporting Types
|
|
11
|
+
|
|
12
|
+
- **Infrastructure Audit**: PDF mapping of current cloud resources and security groups.
|
|
13
|
+
- **Deployment Sign-off**: Formal PDF certificate of successful deployment, including QA pass logs.
|
|
14
|
+
- **Security Scans**: Summarized PDF reports of vulnerability scans performed during CI/CD.
|
|
15
|
+
|
|
16
|
+
## Requirements
|
|
17
|
+
|
|
18
|
+
- Professional, objective formatting.
|
|
19
|
+
- Inclusion of cryptographic hashes or signatures where required.
|
|
20
|
+
- Clear, scannable summaries for architectural review.
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: webapp-testing
|
|
3
|
+
description: Toolkit for interacting with and testing local web applications using Playwright.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Web Application Testing Skill
|
|
7
|
+
|
|
8
|
+
Use this skill to verify frontend functionality, debug UI behavior, and capture browser state for evaluation or deployment verification.
|
|
9
|
+
|
|
10
|
+
## Workflow
|
|
11
|
+
|
|
12
|
+
1. **Reconnaissance**:
|
|
13
|
+
- Navigate to the local server URL.
|
|
14
|
+
- Wait for `networkidle` state to ensure JS execution is complete.
|
|
15
|
+
- Inspect the rendered DOM or take a full-page screenshot.
|
|
16
|
+
|
|
17
|
+
2. **Identification**:
|
|
18
|
+
- Locate specific elements using descriptive selectors (`text=`, `role=`, CSS, or IDs).
|
|
19
|
+
- Use `page.locator()` and `all()` to discover interactive elements.
|
|
20
|
+
|
|
21
|
+
3. **Execution**:
|
|
22
|
+
- Write Playwright scripts to perform actions (click, type, navigate).
|
|
23
|
+
- Verify assertions and capture logs for debugging.
|
|
24
|
+
|
|
25
|
+
## Helper Pattern
|
|
26
|
+
|
|
27
|
+
When working with local servers, ensure the server is running correctly before beginning reconnaissance. If managing server lifecycles, wait for port availability.
|
|
28
|
+
|
|
29
|
+
## Best Practices
|
|
30
|
+
|
|
31
|
+
- **Synchronous Logic**: Use `playwright.sync_api` for cleaner script integration where applicable.
|
|
32
|
+
- **Headless Mode**: Always launch browsers in headless mode for server-side execution.
|
|
33
|
+
- **Waits**: Use `wait_for_selector` or specific network idle states instead of arbitrary timeouts.
|
|
34
|
+
- **Artifacts**: Capture screenshots and console logs to provide proof of verification.
|