@juangcarmona/lighthouse-sdlc 0.11.0 → 0.13.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.
Files changed (34) hide show
  1. package/README.md +45 -9
  2. package/completion.md +48 -0
  3. package/host-contract.md +2 -0
  4. package/package.json +2 -1
  5. package/skills/integrate/SKILL.md +7 -1
  6. package/skills/propose/SKILL.md +1 -1
  7. package/skills/refine/SKILL.md +1 -1
  8. package/skills/review/SKILL.md +7 -1
  9. package/src/completion-actions.mjs +114 -0
  10. package/src/completion.mjs +169 -0
  11. package/src/github-profile.mjs +9 -1
  12. package/src/host-contract.mjs +8 -4
  13. package/src/implementation-runtime.mjs +66 -0
  14. package/src/implementation.mjs +143 -0
  15. package/src/install-workflows.mjs +30 -0
  16. package/src/integration-evidence.mjs +56 -0
  17. package/src/issue-actions.mjs +189 -0
  18. package/src/observe-protection.mjs +24 -0
  19. package/src/opencode-execute.mjs +188 -0
  20. package/src/opencode-progress.mjs +48 -0
  21. package/src/process-publication.mjs +90 -0
  22. package/src/proposal.mjs +96 -0
  23. package/workflows/lighthouse-sdlc-implement.lock.yml +251 -1085
  24. package/workflows/lighthouse-sdlc-implement.md +165 -29
  25. package/workflows/lighthouse-sdlc-integrate.lock.yml +257 -1076
  26. package/workflows/lighthouse-sdlc-integrate.md +175 -29
  27. package/workflows/lighthouse-sdlc-propose.lock.yml +241 -1085
  28. package/workflows/lighthouse-sdlc-propose.md +155 -29
  29. package/workflows/lighthouse-sdlc-refine.lock.yml +239 -1085
  30. package/workflows/lighthouse-sdlc-refine.md +151 -29
  31. package/workflows/lighthouse-sdlc-review.lock.yml +257 -1076
  32. package/workflows/lighthouse-sdlc-review.md +175 -29
  33. package/workflows/lighthouse-sdlc-router.yml +84 -145
  34. package/workflows/shared/lighthouse-opencode.md +22 -0
@@ -1,41 +1,163 @@
1
1
  ---
2
- # Owned by @juangcarmona/lighthouse-sdlc. Compile with `gh aw compile`; do not edit the lock file.
2
+ # Owned by lighthouse-sdlc. Regenerate the lock with gh aw v0.93.2.
3
3
  name: Lighthouse SDLC refine
4
- description: Execute only the Lighthouse refinement stage and return its declared stage result.
5
- private: true
6
- runs-on: [self-hosted, linux, lighthouse-sdlc]
7
- runs-on-slim: ubuntu-24.04
8
- strict: true
9
- env:
10
- LIGHTHOUSE_STAGE: refine
11
- LIGHTHOUSE_SKILL: node_modules/@juangcarmona/lighthouse-sdlc/skills/refine/SKILL.md
4
+ description: Refine an authorized issue through OpenCode with execution logs and validated evidence.
12
5
  on:
13
6
  workflow_call:
14
7
  inputs:
15
- route:
16
- description: Lighthouse route selected by the host.
17
- required: true
18
- type: string
19
- run-id:
20
- description: Stable Lighthouse run identifier.
8
+ issue:
21
9
  required: true
22
10
  type: string
23
- input:
24
- description: Compact JSON input for this stage.
25
- required: false
26
- type: string
27
- default: '{}'
28
- previous-stage:
29
- description: Previous stage artifact name.
30
- required: false
31
- type: string
32
- default: triage
11
+ needs: [prepare]
12
+ runs-on: [self-hosted, linux, lighthouse-workflow]
13
+ runs-on-slim: ubuntu-24.04
14
+ timeout-minutes: 15
15
+ permissions:
16
+ contents: read
17
+ engine:
18
+ id: opencode
19
+ command: node
33
20
  imports:
34
- - shared/lighthouse-sdlc-stage.md
21
+ - shared/lighthouse-opencode.md
22
+ # Subscription authentication runs inside the operator's Docker engine sandbox.
23
+ # This profile does not claim AWF network isolation or API-proxy credential isolation.
24
+ strict: false
25
+ features:
26
+ dangerously-disable-sandbox-agent: true
27
+ sandbox:
28
+ agent: false
29
+ tools:
30
+ github: false
31
+ safe-outputs:
32
+ create-issue: false
33
+ report-incomplete: false
34
+ threat-detection: false
35
+ report-failure-as-issue: false
36
+ report-missing-tool: false
37
+ report-missing-data: false
38
+ noop:
39
+ report-as-issue: false
40
+ network:
41
+ allowed: []
42
+ steps:
43
+ - name: Check out the authorized product revision
44
+ uses: actions/checkout@v5
45
+ with:
46
+ persist-credentials: false
47
+ - name: Load the pinned harness package
48
+ uses: actions/checkout@v5
49
+ with:
50
+ repository: juangcarmona/lighthouse
51
+ ref: __LIGHTHOUSE_REF__
52
+ path: tools
53
+ persist-credentials: false
54
+ - name: Load the authorized issue context
55
+ uses: actions/download-artifact@v8
56
+ with:
57
+ name: lighthouse-input-${{ inputs.issue }}-${{ github.run_attempt }}
58
+ path: ${{ runner.temp }}/lighthouse-${{ github.run_id }}-${{ github.run_attempt }}
59
+ post-steps:
60
+ - name: Validate the Lighthouse result
61
+ run: node tools/src/packages/sdlc/src/issue-actions.mjs validate
62
+ - name: Preserve the result and runtime receipt
63
+ if: always()
64
+ uses: actions/upload-artifact@v7
65
+ with:
66
+ name: lighthouse-result-${{ inputs.issue }}-${{ github.run_attempt }}
67
+ path: |
68
+ ${{ runner.temp }}/lighthouse-${{ github.run_id }}-${{ github.run_attempt }}/envelope.json
69
+ ${{ runner.temp }}/lighthouse-${{ github.run_id }}-${{ github.run_attempt }}/runtime.json
70
+ if-no-files-found: error
71
+ retention-days: 14
72
+ - name: Preserve OpenCode diagnostic events
73
+ if: always()
74
+ uses: actions/upload-artifact@v7
75
+ with:
76
+ name: opencode-events-${{ inputs.issue }}-${{ github.run_attempt }}
77
+ path: ${{ runner.temp }}/gh-aw/opencode-events-${{ github.run_id }}-${{ github.run_attempt }}.jsonl
78
+ if-no-files-found: ignore
79
+ retention-days: 14
80
+ jobs:
81
+ prepare:
82
+ name: Authorize and reserve issue
83
+ runs-on: ubuntu-24.04
84
+ permissions:
85
+ contents: read
86
+ issues: write
87
+ env:
88
+ LIGHTHOUSE_ISSUE: ${{ inputs.issue }}
89
+ steps:
90
+ - uses: actions/checkout@v5
91
+ with:
92
+ repository: juangcarmona/lighthouse
93
+ ref: __LIGHTHOUSE_REF__
94
+ persist-credentials: false
95
+ - uses: actions/setup-node@v5
96
+ with:
97
+ node-version: 24
98
+ - name: Collect verified owner intent and reserve the issue
99
+ id: prepare
100
+ env:
101
+ GH_TOKEN: ${{ github.token }}
102
+ run: node src/packages/sdlc/src/issue-actions.mjs prepare
103
+ - name: Preserve the execution request
104
+ uses: actions/upload-artifact@v7
105
+ with:
106
+ name: lighthouse-input-${{ inputs.issue }}-${{ github.run_attempt }}
107
+ path: ${{ runner.temp }}/lighthouse-${{ github.run_id }}-${{ github.run_attempt }}/
108
+ if-no-files-found: error
109
+ retention-days: 14
110
+ - name: Release reservation if preparation failed
111
+ if: failure()
112
+ env:
113
+ GH_TOKEN: ${{ github.token }}
114
+ run: node src/packages/sdlc/src/issue-actions.mjs cleanup
115
+ publish:
116
+ name: Validate, publish and release
117
+ needs: [prepare, agent]
118
+ if: always() && needs.prepare.result == 'success'
119
+ runs-on: ubuntu-24.04
120
+ permissions:
121
+ contents: read
122
+ issues: write
123
+ env:
124
+ LIGHTHOUSE_ISSUE: ${{ inputs.issue }}
125
+ steps:
126
+ - uses: actions/checkout@v5
127
+ with:
128
+ repository: juangcarmona/lighthouse
129
+ ref: __LIGHTHOUSE_REF__
130
+ persist-credentials: false
131
+ - uses: actions/setup-node@v5
132
+ with:
133
+ node-version: 24
134
+ - name: Load the execution request
135
+ uses: actions/download-artifact@v8
136
+ with:
137
+ name: lighthouse-input-${{ inputs.issue }}-${{ github.run_attempt }}
138
+ path: ${{ runner.temp }}/lighthouse-${{ github.run_id }}-${{ github.run_attempt }}
139
+ - name: Load the candidate result
140
+ if: needs.agent.result == 'success'
141
+ uses: actions/download-artifact@v8
142
+ with:
143
+ name: lighthouse-result-${{ inputs.issue }}-${{ github.run_attempt }}
144
+ path: ${{ runner.temp }}/lighthouse-${{ github.run_id }}-${{ github.run_attempt }}
145
+ - name: Recheck authority and publish the validated result
146
+ if: needs.agent.result == 'success'
147
+ env:
148
+ GH_TOKEN: ${{ github.token }}
149
+ run: node src/packages/sdlc/src/issue-actions.mjs publish
150
+ - name: Release the issue reservation
151
+ if: always()
152
+ env:
153
+ GH_TOKEN: ${{ github.token }}
154
+ run: node src/packages/sdlc/src/issue-actions.mjs cleanup
35
155
  ---
36
156
 
37
- # Lighthouse SDLC refine worker
157
+ # Refine the authorized issue
158
+
159
+ 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`.
38
160
 
39
- Execute only `refine` by following `${{ env.LIGHTHOUSE_SKILL }}` and reading the triage result from `/tmp/gh-aw/agent/previous/stage-result.json` when present; for a supervised run, use the predecessor context in `/tmp/gh-aw/agent/input.json`. Use the current ProductShape and ArcShape citations supplied by the host; keep them in evidence and do not replace either authority.
161
+ 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.
40
162
 
41
- Do not invoke `propose` or any later stage. Return one valid result in `/tmp/gh-aw/agent/stage-result.json` with `stage: refine`, `gate: ready`, the bounded problem in `output`, and separate evidence arrays. Stop at the ready gate, then call `noop` exactly once. If a prerequisite or check fails, return the declared failure or blocked status with the evidence preserved.
163
+ 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.