@juangcarmona/lighthouse-sdlc 0.7.0 → 0.9.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.
@@ -0,0 +1,41 @@
1
+ ---
2
+ # Owned by @juangcarmona/lighthouse-sdlc. Compile with `gh aw compile`; do not edit the lock file.
3
+ name: Lighthouse SDLC triage
4
+ description: Execute only the Lighthouse triage 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: triage
11
+ LIGHTHOUSE_SKILL: node_modules/@juangcarmona/lighthouse-sdlc/skills/triage/SKILL.md
12
+ on:
13
+ workflow_call:
14
+ 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.
21
+ required: true
22
+ 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; empty for triage.
30
+ required: false
31
+ type: string
32
+ default: ''
33
+ imports:
34
+ - shared/lighthouse-sdlc-stage.md
35
+ ---
36
+
37
+ # Lighthouse SDLC triage worker
38
+
39
+ Execute only `triage` by following `${{ env.LIGHTHOUSE_SKILL }}` and the package contracts in `node_modules/@juangcarmona/lighthouse-sdlc/routes.json`, `node_modules/@juangcarmona/lighthouse-sdlc/stages.json` and `node_modules/@juangcarmona/lighthouse-sdlc/schemas/stage-result.schema.json`. Read ProductShape and ArcShape context when the host provides citations, and preserve those citations in evidence.
40
+
41
+ Do not invoke `refine` or any later stage. Do not invent route names, labels, gates, statuses or evidence fields. Assess the work item, route, owner and evidence as the skill requires. Write one valid result to `/tmp/gh-aw/agent/stage-result.json` with `stage: triage`, `gate: triaged`, the triage record in `output`, and separate `evidence`, `missingEvidence`, `unavailableChecks` and `pendingReview` arrays. Stop at the triaged gate, then call `noop` exactly once.
@@ -0,0 +1,77 @@
1
+ ---
2
+ # Owned by @juangcarmona/lighthouse-sdlc. Shared stage mechanics for the local gh-aw workers.
3
+ description: Shared runner, input, evidence and stage-result mechanics for Lighthouse SDLC workers.
4
+ engine: copilot
5
+ permissions: read-all
6
+ checkout:
7
+ fetch-depth: 0
8
+ tools:
9
+ bash: [cat, find, git, node, npm, npx, rg]
10
+ edit:
11
+ github:
12
+ toolsets: [repos, issues, pull_requests]
13
+ safe-outputs:
14
+ report-failure-as-issue: false
15
+ create-issue: false
16
+ noop:
17
+ max: 1
18
+ report-as-issue: false
19
+ steps:
20
+ - name: Install the locked consumer packages
21
+ run: npm ci --ignore-scripts
22
+ - name: Check the installed SDLC version
23
+ run: node node_modules/@juangcarmona/lighthouse-sdlc/src/installation.mjs
24
+ - name: Materialize the host input
25
+ shell: bash
26
+ env:
27
+ STAGE_INPUT: ${{ inputs.input }}
28
+ run: |
29
+ set -euo pipefail
30
+ mkdir -p /tmp/gh-aw/agent
31
+ printf '%s\n' "${STAGE_INPUT:-"{}"}" > /tmp/gh-aw/agent/input.json
32
+ - name: Load the previous stage result
33
+ if: inputs.previous-stage != ''
34
+ uses: actions/download-artifact@v8
35
+ with:
36
+ name: lighthouse-sdlc-${{ inputs.run-id }}-${{ inputs.previous-stage }}
37
+ path: /tmp/gh-aw/agent/previous
38
+ post-steps:
39
+ - name: Preserve the stage result
40
+ if: always()
41
+ shell: bash
42
+ run: |
43
+ set -euo pipefail
44
+ mkdir -p "$GITHUB_WORKSPACE/.lighthouse/gh-aw"
45
+ result=/tmp/gh-aw/agent/stage-result.json
46
+ if [ -f "$result" ]; then
47
+ cp "$result" "$GITHUB_WORKSPACE/.lighthouse/gh-aw/stage-result.json"
48
+ else
49
+ echo "::error::The worker did not produce /tmp/gh-aw/agent/stage-result.json"
50
+ exit 1
51
+ fi
52
+ - name: Require completion of the dispatched stage
53
+ if: always()
54
+ shell: bash
55
+ env:
56
+ EXPECTED_STAGE: ${{ env.LIGHTHOUSE_STAGE }}
57
+ EXPECTED_RUN_ID: ${{ inputs.run-id }}
58
+ RESULT_FILE: /tmp/gh-aw/agent/stage-result.json
59
+ run: |
60
+ set -euo pipefail
61
+ node node_modules/@juangcarmona/lighthouse-sdlc/src/sdlc.mjs stage-result --input "$RESULT_FILE" \
62
+ --require-complete --stage "$EXPECTED_STAGE" --run-id "$EXPECTED_RUN_ID" --format json
63
+ - name: Upload stage evidence
64
+ if: always()
65
+ uses: actions/upload-artifact@v7
66
+ with:
67
+ name: lighthouse-sdlc-${{ inputs.run-id }}-${{ env.LIGHTHOUSE_STAGE }}
68
+ path: ${{ github.workspace }}/.lighthouse/gh-aw/stage-result.json
69
+ if-no-files-found: warn
70
+ retention-days: 14
71
+ ---
72
+
73
+ # Lighthouse SDLC worker mechanics
74
+
75
+ The host input is in `/tmp/gh-aw/agent/input.json`. If this worker has a previous stage, its validated result is in `/tmp/gh-aw/agent/previous/stage-result.json`.
76
+
77
+ Set `runId` to `${{ inputs.run-id }}`. A worker completes only with `status: passed`, the declared stage and gate, empty `missingEvidence`, `unavailableChecks` and `pendingReview` arrays, and evidence whose status is `passed` or `not-applicable`. Preserve unresolved work in a `ready`, `blocked` or `failed` result; it is uploaded for inspection and fails the worker. Worker completion does not approve a human gate.