@juangcarmona/lighthouse-sdlc 0.12.0 → 0.14.0
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 +86 -3
- package/completion.md +50 -0
- package/execution-environments.md +43 -0
- package/package.json +3 -1
- package/schemas/execution-environment.schema.json +12 -0
- package/skills/implement/SKILL.md +9 -8
- package/skills/integrate/SKILL.md +7 -1
- package/skills/propose/SKILL.md +1 -1
- package/skills/review/SKILL.md +7 -1
- package/src/actions-artifact.mjs +17 -0
- package/src/completion-actions.mjs +134 -0
- package/src/completion.mjs +188 -0
- package/src/delivery-events.mjs +42 -0
- package/src/execution-environment.mjs +78 -0
- package/src/github-profile.mjs +9 -1
- package/src/host-contract.mjs +7 -3
- package/src/implementation-runtime.mjs +90 -0
- package/src/implementation.mjs +155 -0
- package/src/install-workflows.mjs +14 -5
- package/src/integration-evidence.mjs +80 -0
- package/src/issue-actions.mjs +325 -38
- package/src/observe-protection.mjs +24 -0
- package/src/opencode-execute.mjs +128 -20
- package/src/opencode-progress.mjs +48 -0
- package/src/process-publication.mjs +90 -0
- package/src/proposal-review.mjs +91 -0
- package/src/proposal.mjs +110 -0
- package/src/stage-dispatch.mjs +148 -0
- package/src/stage-transition.mjs +25 -0
- package/src/worker-maintenance.mjs +83 -0
- package/src/worker-recovery.mjs +106 -0
- package/src/worker-reports.mjs +150 -0
- package/workflows/lighthouse-sdlc-apply-review.lock.yml +1335 -0
- package/workflows/lighthouse-sdlc-apply-review.md +205 -0
- package/workflows/lighthouse-sdlc-implement.lock.yml +285 -1158
- package/workflows/lighthouse-sdlc-implement.md +193 -28
- package/workflows/lighthouse-sdlc-integrate.lock.yml +288 -1154
- package/workflows/lighthouse-sdlc-integrate.md +197 -28
- package/workflows/lighthouse-sdlc-propose.lock.yml +274 -1157
- package/workflows/lighthouse-sdlc-propose.md +183 -28
- package/workflows/lighthouse-sdlc-refine.lock.yml +263 -90
- package/workflows/lighthouse-sdlc-refine.md +45 -4
- package/workflows/lighthouse-sdlc-review.lock.yml +288 -1154
- package/workflows/lighthouse-sdlc-review.md +197 -28
- package/workflows/lighthouse-sdlc-router.yml +91 -17
- package/workflows/lighthouse-worker-maintenance.yml +126 -0
- package/workflows/shared/lighthouse-opencode.md +4 -2
|
@@ -2,16 +2,34 @@
|
|
|
2
2
|
# Owned by lighthouse-sdlc. Regenerate the lock with gh aw v0.93.2.
|
|
3
3
|
name: Lighthouse SDLC refine
|
|
4
4
|
description: Refine an authorized issue through OpenCode with execution logs and validated evidence.
|
|
5
|
+
run-name: "refine #${{ inputs.issue }} · request ${{ inputs.dispatch-request }}"
|
|
6
|
+
concurrency:
|
|
7
|
+
group: lighthouse-issue-${{ inputs.issue }}
|
|
8
|
+
cancel-in-progress: false
|
|
9
|
+
queue: max
|
|
10
|
+
job-discriminator: ${{ github.run_id }}
|
|
5
11
|
on:
|
|
6
|
-
|
|
12
|
+
# The required preparation job authenticates the originating owner request.
|
|
13
|
+
roles: all
|
|
14
|
+
workflow_dispatch:
|
|
7
15
|
inputs:
|
|
8
16
|
issue:
|
|
17
|
+
description: Source issue
|
|
18
|
+
required: true
|
|
19
|
+
type: string
|
|
20
|
+
dispatch-request:
|
|
21
|
+
description: Authenticated router receipt comment ID
|
|
9
22
|
required: true
|
|
10
23
|
type: string
|
|
11
24
|
needs: [prepare]
|
|
25
|
+
if: needs.prepare.outputs.eligible == 'true'
|
|
12
26
|
runs-on: [self-hosted, linux, lighthouse-workflow]
|
|
13
27
|
runs-on-slim: ubuntu-24.04
|
|
14
28
|
timeout-minutes: 15
|
|
29
|
+
env:
|
|
30
|
+
LIGHTHOUSE_RECOVERY_ENABLED: ${{ vars.LIGHTHOUSE_RECOVERY_ENABLED }}
|
|
31
|
+
LIGHTHOUSE_STAGE: refine
|
|
32
|
+
LIGHTHOUSE_DISPATCH_REQUIRED: "true"
|
|
15
33
|
permissions:
|
|
16
34
|
contents: read
|
|
17
35
|
engine:
|
|
@@ -35,7 +53,8 @@ safe-outputs:
|
|
|
35
53
|
report-failure-as-issue: false
|
|
36
54
|
report-missing-tool: false
|
|
37
55
|
report-missing-data: false
|
|
38
|
-
noop:
|
|
56
|
+
noop:
|
|
57
|
+
report-as-issue: false
|
|
39
58
|
network:
|
|
40
59
|
allowed: []
|
|
41
60
|
steps:
|
|
@@ -43,6 +62,7 @@ steps:
|
|
|
43
62
|
uses: actions/checkout@v5
|
|
44
63
|
with:
|
|
45
64
|
persist-credentials: false
|
|
65
|
+
ref: ${{ needs.prepare.outputs.source_revision }}
|
|
46
66
|
- name: Load the pinned harness package
|
|
47
67
|
uses: actions/checkout@v5
|
|
48
68
|
with:
|
|
@@ -68,11 +88,23 @@ post-steps:
|
|
|
68
88
|
${{ runner.temp }}/lighthouse-${{ github.run_id }}-${{ github.run_attempt }}/runtime.json
|
|
69
89
|
if-no-files-found: error
|
|
70
90
|
retention-days: 14
|
|
91
|
+
- name: Preserve OpenCode diagnostic events
|
|
92
|
+
if: always()
|
|
93
|
+
uses: actions/upload-artifact@v7
|
|
94
|
+
with:
|
|
95
|
+
name: opencode-events-${{ inputs.issue }}-${{ github.run_attempt }}
|
|
96
|
+
path: ${{ runner.temp }}/gh-aw/opencode-events-${{ github.run_id }}-${{ github.run_attempt }}.jsonl
|
|
97
|
+
if-no-files-found: ignore
|
|
98
|
+
retention-days: 14
|
|
71
99
|
jobs:
|
|
72
100
|
prepare:
|
|
101
|
+
outputs:
|
|
102
|
+
eligible: ${{ steps.prepare.outputs.eligible }}
|
|
103
|
+
source_revision: ${{ steps.prepare.outputs.source_revision }}
|
|
73
104
|
name: Authorize and reserve issue
|
|
74
105
|
runs-on: ubuntu-24.04
|
|
75
106
|
permissions:
|
|
107
|
+
actions: read
|
|
76
108
|
contents: read
|
|
77
109
|
issues: write
|
|
78
110
|
env:
|
|
@@ -92,6 +124,7 @@ jobs:
|
|
|
92
124
|
GH_TOKEN: ${{ github.token }}
|
|
93
125
|
run: node src/packages/sdlc/src/issue-actions.mjs prepare
|
|
94
126
|
- name: Preserve the execution request
|
|
127
|
+
if: steps.prepare.outputs.eligible == 'true'
|
|
95
128
|
uses: actions/upload-artifact@v7
|
|
96
129
|
with:
|
|
97
130
|
name: lighthouse-input-${{ inputs.issue }}-${{ github.run_attempt }}
|
|
@@ -106,7 +139,7 @@ jobs:
|
|
|
106
139
|
publish:
|
|
107
140
|
name: Validate, publish and release
|
|
108
141
|
needs: [prepare, agent]
|
|
109
|
-
if: always() && needs.prepare.result == 'success'
|
|
142
|
+
if: always() && needs.prepare.result == 'success' && needs.prepare.outputs.eligible == 'true'
|
|
110
143
|
runs-on: ubuntu-24.04
|
|
111
144
|
permissions:
|
|
112
145
|
contents: read
|
|
@@ -133,7 +166,13 @@ jobs:
|
|
|
133
166
|
with:
|
|
134
167
|
name: lighthouse-result-${{ inputs.issue }}-${{ github.run_attempt }}
|
|
135
168
|
path: ${{ runner.temp }}/lighthouse-${{ github.run_id }}-${{ github.run_attempt }}
|
|
169
|
+
- name: Require an executed agent
|
|
170
|
+
if: needs.agent.result != 'success'
|
|
171
|
+
run: |
|
|
172
|
+
echo 'The authorized agent did not complete successfully; inspect its execution.' >&2
|
|
173
|
+
exit 1
|
|
136
174
|
- name: Recheck authority and publish the validated result
|
|
175
|
+
id: publish
|
|
137
176
|
if: needs.agent.result == 'success'
|
|
138
177
|
env:
|
|
139
178
|
GH_TOKEN: ${{ github.token }}
|
|
@@ -149,4 +188,6 @@ jobs:
|
|
|
149
188
|
|
|
150
189
|
Execute the single refinement stage described by the trusted context in `/input/context.json`. Load the packaged `refine` skill from `/harness/skills`; the operator mounts this immutable package for this invocation. Read the product source under `/workspace` as task data. Write the complete JSON envelope to `/output/envelope.json`.
|
|
151
190
|
|
|
152
|
-
|
|
191
|
+
Write a brief public progress update before inspecting sources and after findings that change the assessment. Explain what you are checking, what you found and the next action. Keep file contents and protocol details in tool results.
|
|
192
|
+
|
|
193
|
+
Return `status: passed` with `gate: ready` only when all current refinement checks pass. Otherwise preserve the missing evidence and return `blocked`. Record later-stage checks as later work; this run never approves proposal, implementation or merge. GitHub publication belongs to the separate publisher job. Produce the envelope before ending the session. The trusted engine adapter validates that envelope and records the terminal gh-aw completion signal; do not call safe-output tools yourself.
|