@juangcarmona/lighthouse-sdlc 0.14.0 → 0.15.1
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 +48 -125
- package/capabilities.json +14 -8
- package/completion.md +2 -2
- package/github-actions.md +104 -0
- package/host-contract.md +1 -1
- package/model-profiles.md +101 -0
- package/package.json +9 -1
- package/request-triage.md +32 -0
- package/schemas/estimate.schema.json +23 -0
- package/schemas/request-analysis.schema.json +37 -0
- package/schemas/triage.schema.json +1 -0
- package/skills/concise-results/SKILL.md +10 -0
- package/skills/refine/SKILL.md +1 -1
- package/skills/triage/SKILL.md +3 -3
- package/src/completion.mjs +1 -1
- package/src/host-contract.mjs +3 -0
- package/src/implementation.mjs +6 -1
- package/src/install-workflows.mjs +11 -5
- package/src/integration-evidence.mjs +1 -1
- package/src/issue-actions.mjs +62 -18
- package/src/model-profiles.mjs +58 -0
- package/src/opencode-execute.mjs +17 -4
- package/src/pr-state-actions.mjs +106 -0
- package/src/pr-state.mjs +75 -0
- package/src/profile-delegation.mjs +111 -0
- package/src/proposal.mjs +1 -1
- package/src/request-triage.mjs +42 -0
- package/src/stage-dispatch.mjs +21 -5
- package/src/stage-transition.mjs +10 -0
- package/src/triage.mjs +4 -0
- package/templates/change-request.yml +24 -0
- package/workflows/lighthouse-sdlc-apply-review.lock.yml +14 -13
- package/workflows/lighthouse-sdlc-apply-review.md +2 -1
- package/workflows/lighthouse-sdlc-implement.lock.yml +13 -13
- package/workflows/lighthouse-sdlc-implement.md +1 -1
- package/workflows/lighthouse-sdlc-integrate.lock.yml +13 -13
- package/workflows/lighthouse-sdlc-integrate.md +1 -1
- package/workflows/lighthouse-sdlc-propose.lock.yml +13 -13
- package/workflows/lighthouse-sdlc-propose.md +1 -1
- package/workflows/lighthouse-sdlc-refine.lock.yml +18 -13
- package/workflows/lighthouse-sdlc-refine.md +6 -1
- package/workflows/lighthouse-sdlc-review.lock.yml +13 -13
- package/workflows/lighthouse-sdlc-review.md +1 -1
- package/workflows/lighthouse-sdlc-router.yml +38 -5
- package/workflows/lighthouse-sdlc-triage.lock.yml +283 -1169
- package/workflows/lighthouse-sdlc-triage.md +175 -29
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# gh-aw-metadata: {"schema_version":"v4","frontmatter_hash":"
|
|
1
|
+
# gh-aw-metadata: {"schema_version":"v4","frontmatter_hash":"71a9cc0055e7e8bad0c8eeb083c3105f576f83c52f1139b7f8bcfdb15b90ff58","body_hash":"13d2a6e093a7dc59f842bf0e8e8ea2a1c5a2879c8608b026dac1197b022baebe","compiler_version":"v0.93.2","agent_id":"opencode","engine_versions":{"opencode":"2.1.0"},"agent_image_runner":"[\"self-hosted\",\"linux\",\"lighthouse-workflow\"]"}
|
|
2
2
|
# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_DEFAULT_OTLP_ENDPOINT","GH_AW_DEFAULT_OTLP_HEADERS","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"3d3c42e5aac5ba805825da76410c181273ba90b1","version":"v7.0.1"},{"repo":"actions/checkout","sha":"fbc6f3992d24b796d5a048ff273f7fcc4a7b6c09","version":"v5"},{"repo":"actions/download-artifact","sha":"9000827ccba6bdab643e8b6fd33ac0654aef8333","version":"v8.0.2"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-node","sha":"949feb2413d6458794dcd2491c4babbbce0c15c1","version":"v7.1.0"},{"repo":"actions/setup-node","sha":"a0853c24544627f65ddf259abe73b1d18a591444","version":"v5"},{"repo":"actions/upload-artifact","sha":"cf430e030ddbb5b0abf93d22962f4752f3646cd9","version":"v7.0.2"},{"repo":"github/gh-aw-actions/setup","sha":"d9128eb3ea40c18b77c76184eda03c0ff2608d79","version":"v0.93.2"}],"containers":[{"image":"ghcr.io/github/gh-aw-node","digest":"sha256:41835613992df88f51e923bad486f96dfb2e6cda29f13e217df41833284ae382","pinned_image":"ghcr.io/github/gh-aw-node@sha256:41835613992df88f51e923bad486f96dfb2e6cda29f13e217df41833284ae382"}],"mcp_servers":[{"name":"safeoutputs","tools":["noop"]}],"threat_detection":{"mode":"disabled"},"admission":false}
|
|
3
3
|
# This file was automatically generated by gh-aw (v0.93.2). DO NOT EDIT. To debug this workflow, load the skill at https://github.com/github/gh-aw/blob/main/debug.md
|
|
4
4
|
#
|
|
@@ -55,7 +55,7 @@
|
|
|
55
55
|
# Container images used:
|
|
56
56
|
# - ghcr.io/github/gh-aw-node@sha256:41835613992df88f51e923bad486f96dfb2e6cda29f13e217df41833284ae382
|
|
57
57
|
|
|
58
|
-
name: "
|
|
58
|
+
name: "review"
|
|
59
59
|
on:
|
|
60
60
|
# roles: all # Roles processed as role check in pre-activation job
|
|
61
61
|
workflow_dispatch:
|
|
@@ -90,7 +90,7 @@ env:
|
|
|
90
90
|
LIGHTHOUSE_STAGE: review
|
|
91
91
|
OTEL_EXPORTER_OTLP_ENDPOINT: ${{ secrets.GH_AW_DEFAULT_OTLP_ENDPOINT || vars.GH_AW_DEFAULT_OTLP_ENDPOINT }}
|
|
92
92
|
OTEL_SERVICE_NAME: gh-aw.lighthouse-sdlc-review
|
|
93
|
-
OTEL_RESOURCE_ATTRIBUTES: 'gh-aw.workflow.name=
|
|
93
|
+
OTEL_RESOURCE_ATTRIBUTES: 'gh-aw.workflow.name=review,gh-aw.repository=${{ github.repository }},gh-aw.run.id=${{ github.run_id }},github.run_id=${{ github.run_id }},gh-aw.engine.id=opencode'
|
|
94
94
|
OTEL_EXPORTER_OTLP_HEADERS: ${{ secrets.GH_AW_DEFAULT_OTLP_HEADERS }}
|
|
95
95
|
GH_AW_OTLP_ENDPOINTS: '[{"url":"${{ secrets.GH_AW_DEFAULT_OTLP_ENDPOINT || vars.GH_AW_DEFAULT_OTLP_ENDPOINT }}","headers":"${{ secrets.GH_AW_DEFAULT_OTLP_HEADERS }}"}]'
|
|
96
96
|
GH_AW_OTLP_IF_MISSING: ignore
|
|
@@ -139,7 +139,7 @@ jobs:
|
|
|
139
139
|
parent-span-id: ${{ needs.pre_activation.outputs.setup-parent-span-id || needs.pre_activation.outputs.setup-span-id }}
|
|
140
140
|
safe-output-artifact-client: ${{ env.GH_AW_MAX_DAILY_AI_CREDITS != '' }}
|
|
141
141
|
env:
|
|
142
|
-
GH_AW_SETUP_WORKFLOW_NAME: "
|
|
142
|
+
GH_AW_SETUP_WORKFLOW_NAME: "review"
|
|
143
143
|
GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/lighthouse-sdlc-review.lock.yml@${{ github.ref }}
|
|
144
144
|
GH_AW_INFO_VERSION: "2.1.0"
|
|
145
145
|
GH_AW_INFO_ENGINE_ID: "opencode"
|
|
@@ -155,7 +155,7 @@ jobs:
|
|
|
155
155
|
GH_AW_INFO_VERSION: "2.1.0"
|
|
156
156
|
GH_AW_INFO_AGENT_VERSION: "2.1.0"
|
|
157
157
|
GH_AW_INFO_CLI_VERSION: "v0.93.2"
|
|
158
|
-
GH_AW_INFO_WORKFLOW_NAME: "
|
|
158
|
+
GH_AW_INFO_WORKFLOW_NAME: "review"
|
|
159
159
|
GH_AW_INFO_WORKFLOW_ID: ${{ job.workflow_ref }}
|
|
160
160
|
GH_AW_INFO_EXPERIMENTAL: "false"
|
|
161
161
|
GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true"
|
|
@@ -204,7 +204,7 @@ jobs:
|
|
|
204
204
|
if: ${{ env.GH_AW_ADMISSION_RESULT != 'admitted' && env.GH_AW_MAX_DAILY_AI_CREDITS != '' }}
|
|
205
205
|
uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
|
|
206
206
|
env:
|
|
207
|
-
GH_AW_WORKFLOW_NAME: "
|
|
207
|
+
GH_AW_WORKFLOW_NAME: "review"
|
|
208
208
|
GH_AW_WORKFLOW_ID: "lighthouse-sdlc-review"
|
|
209
209
|
GH_AW_RUN_URL: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
|
|
210
210
|
GH_AW_WORKFLOW_DISPATCH_AW_CONTEXT: ${{ github.event.inputs.aw_context || '' }}
|
|
@@ -278,7 +278,7 @@ jobs:
|
|
|
278
278
|
GH_AW_COMPILED_VERSION: "v0.93.2"
|
|
279
279
|
GH_AW_HAS_SAFE_OUTPUTS: "true"
|
|
280
280
|
GH_AW_BLOCKED_VERSION_REPORT_AS_ISSUE: "false"
|
|
281
|
-
GH_AW_WORKFLOW_NAME: "
|
|
281
|
+
GH_AW_WORKFLOW_NAME: "review"
|
|
282
282
|
with:
|
|
283
283
|
script: |
|
|
284
284
|
const path = require('path');
|
|
@@ -458,7 +458,7 @@ jobs:
|
|
|
458
458
|
trace-id: ${{ needs.activation.outputs.setup-trace-id }}
|
|
459
459
|
parent-span-id: ${{ needs.activation.outputs.setup-parent-span-id || needs.activation.outputs.setup-span-id }}
|
|
460
460
|
env:
|
|
461
|
-
GH_AW_SETUP_WORKFLOW_NAME: "
|
|
461
|
+
GH_AW_SETUP_WORKFLOW_NAME: "review"
|
|
462
462
|
GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/lighthouse-sdlc-review.lock.yml@${{ github.ref }}
|
|
463
463
|
GH_AW_INFO_VERSION: "2.1.0"
|
|
464
464
|
GH_AW_INFO_ENGINE_ID: "opencode"
|
|
@@ -971,7 +971,7 @@ jobs:
|
|
|
971
971
|
trace-id: ${{ needs.activation.outputs.setup-trace-id }}
|
|
972
972
|
parent-span-id: ${{ needs.activation.outputs.setup-parent-span-id || needs.activation.outputs.setup-span-id }}
|
|
973
973
|
env:
|
|
974
|
-
GH_AW_SETUP_WORKFLOW_NAME: "
|
|
974
|
+
GH_AW_SETUP_WORKFLOW_NAME: "review"
|
|
975
975
|
GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/lighthouse-sdlc-review.lock.yml@${{ github.ref }}
|
|
976
976
|
GH_AW_INFO_VERSION: "2.1.0"
|
|
977
977
|
GH_AW_INFO_ENGINE_ID: "opencode"
|
|
@@ -1008,7 +1008,7 @@ jobs:
|
|
|
1008
1008
|
env:
|
|
1009
1009
|
GH_AW_AGENT_OUTPUT: ${{ steps.setup-agent-output-env.outputs.GH_AW_AGENT_OUTPUT }}
|
|
1010
1010
|
GH_AW_NOOP_MAX: "2"
|
|
1011
|
-
GH_AW_WORKFLOW_NAME: "
|
|
1011
|
+
GH_AW_WORKFLOW_NAME: "review"
|
|
1012
1012
|
GH_AW_WORKFLOW_SOURCE_URL: "${{ github.server_url }}/${{ github.repository }}/blob/${{ github.ref_name }}/.github/workflows/lighthouse-sdlc-review.md"
|
|
1013
1013
|
GH_AW_ENGINE_ID: "opencode"
|
|
1014
1014
|
GH_AW_ENGINE_VERSION: "2.1.0"
|
|
@@ -1034,7 +1034,7 @@ jobs:
|
|
|
1034
1034
|
uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
|
|
1035
1035
|
env:
|
|
1036
1036
|
GH_AW_AGENT_OUTPUT: ${{ steps.setup-agent-output-env.outputs.GH_AW_AGENT_OUTPUT }}
|
|
1037
|
-
GH_AW_WORKFLOW_NAME: "
|
|
1037
|
+
GH_AW_WORKFLOW_NAME: "review"
|
|
1038
1038
|
GH_AW_WORKFLOW_SOURCE_URL: "${{ github.server_url }}/${{ github.repository }}/blob/${{ github.ref_name }}/.github/workflows/lighthouse-sdlc-review.md"
|
|
1039
1039
|
GH_AW_RUN_URL: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
|
|
1040
1040
|
GH_AW_AGENT_CONCLUSION: ${{ needs.agent.result }}
|
|
@@ -1076,7 +1076,7 @@ jobs:
|
|
|
1076
1076
|
uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
|
|
1077
1077
|
env:
|
|
1078
1078
|
GH_AW_AGENT_OUTPUT: ${{ steps.setup-agent-output-env.outputs.GH_AW_AGENT_OUTPUT }}
|
|
1079
|
-
GH_AW_WORKFLOW_NAME: "
|
|
1079
|
+
GH_AW_WORKFLOW_NAME: "review"
|
|
1080
1080
|
GH_AW_WORKFLOW_SOURCE_URL: "${{ github.server_url }}/${{ github.repository }}/blob/${{ github.ref_name }}/.github/workflows/lighthouse-sdlc-review.md"
|
|
1081
1081
|
GH_AW_RUN_URL: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
|
|
1082
1082
|
GH_AW_REPORT_FAILED_JOBS: "true"
|
|
@@ -1207,7 +1207,7 @@ jobs:
|
|
|
1207
1207
|
destination: ${{ runner.temp }}/gh-aw/actions
|
|
1208
1208
|
job-name: ${{ github.job }}
|
|
1209
1209
|
env:
|
|
1210
|
-
GH_AW_SETUP_WORKFLOW_NAME: "
|
|
1210
|
+
GH_AW_SETUP_WORKFLOW_NAME: "review"
|
|
1211
1211
|
GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/lighthouse-sdlc-review.lock.yml@${{ github.ref }}
|
|
1212
1212
|
GH_AW_INFO_VERSION: "2.1.0"
|
|
1213
1213
|
GH_AW_INFO_ENGINE_ID: "opencode"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
# Owned by lighthouse-sdlc. Regenerate the lock with gh aw v0.93.2.
|
|
3
|
-
name:
|
|
3
|
+
name: review
|
|
4
4
|
description: Assess review with OpenCode and retain a verified delivery record.
|
|
5
5
|
run-name: "review #${{ inputs.issue }} · request ${{ inputs.dispatch-request }}"
|
|
6
6
|
concurrency:
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# Optional GitHub-native stage adapter; source owned by lighthouse-sdlc.
|
|
2
|
-
name:
|
|
2
|
+
name: router
|
|
3
3
|
run-name: "${{ (github.event_name == 'workflow_run' && 'Delivery after CI') || inputs.stage || github.event.label.name || ((github.event.pull_request || github.event.issue.pull_request) && 'PR review') || (github.event_name == 'issue_comment' && 'reply') || 'refine' }} #${{ github.event.issue.number || github.event.pull_request.number || inputs.issue }} · ${{ github.actor }}"
|
|
4
4
|
on:
|
|
5
5
|
issues:
|
|
@@ -10,9 +10,13 @@ on:
|
|
|
10
10
|
types: [submitted]
|
|
11
11
|
pull_request_review_comment:
|
|
12
12
|
types: [created]
|
|
13
|
+
pull_request:
|
|
14
|
+
types: [ready_for_review, converted_to_draft, closed, reopened]
|
|
13
15
|
workflow_run:
|
|
14
16
|
workflows: ["*"]
|
|
15
17
|
types: [completed]
|
|
18
|
+
schedule:
|
|
19
|
+
- cron: '*/5 * * * *'
|
|
16
20
|
workflow_dispatch:
|
|
17
21
|
inputs:
|
|
18
22
|
issue:
|
|
@@ -24,7 +28,7 @@ on:
|
|
|
24
28
|
required: true
|
|
25
29
|
default: refine
|
|
26
30
|
type: choice
|
|
27
|
-
options: [refine, propose, implement, integrate, review]
|
|
31
|
+
options: [triage, refine, propose, implement, integrate, review]
|
|
28
32
|
after_run:
|
|
29
33
|
description: Recheck a completed execution through the same continuation rules
|
|
30
34
|
required: false
|
|
@@ -45,16 +49,45 @@ on:
|
|
|
45
49
|
permissions:
|
|
46
50
|
contents: read
|
|
47
51
|
env:
|
|
48
|
-
LIGHTHOUSE_ENABLED_STAGES: refine,propose,implement,integrate,review
|
|
52
|
+
LIGHTHOUSE_ENABLED_STAGES: triage,refine,propose,implement,integrate,review
|
|
49
53
|
LIGHTHOUSE_AUTO_IMPLEMENT: true
|
|
50
54
|
LIGHTHOUSE_COMPLETION_ENABLED: true
|
|
51
55
|
jobs:
|
|
56
|
+
pr-state:
|
|
57
|
+
if: >-
|
|
58
|
+
vars.LIGHTHOUSE_AUTOMATION_ENABLED == 'true' &&
|
|
59
|
+
(github.event_name == 'workflow_run' || github.event_name == 'schedule' ||
|
|
60
|
+
(github.event_name == 'pull_request' && github.actor == github.repository_owner))
|
|
61
|
+
concurrency:
|
|
62
|
+
group: lighthouse-pr-state-${{ github.event.pull_request.number || github.event.workflow_run.head_sha || 'scheduled' }}
|
|
63
|
+
cancel-in-progress: false
|
|
64
|
+
queue: max
|
|
65
|
+
runs-on: ubuntu-24.04
|
|
66
|
+
permissions:
|
|
67
|
+
actions: read
|
|
68
|
+
contents: read
|
|
69
|
+
issues: write
|
|
70
|
+
pull-requests: write
|
|
71
|
+
steps:
|
|
72
|
+
- uses: actions/checkout@v5
|
|
73
|
+
with:
|
|
74
|
+
repository: juangcarmona/lighthouse
|
|
75
|
+
ref: __LIGHTHOUSE_REF__
|
|
76
|
+
persist-credentials: false
|
|
77
|
+
- uses: actions/setup-node@v5
|
|
78
|
+
with:
|
|
79
|
+
node-version: 24
|
|
80
|
+
- name: Project implementation PR state
|
|
81
|
+
env:
|
|
82
|
+
GH_TOKEN: ${{ github.token }}
|
|
83
|
+
run: node src/packages/sdlc/src/pr-state-actions.mjs
|
|
52
84
|
route:
|
|
53
85
|
if: >-
|
|
54
86
|
vars.LIGHTHOUSE_AUTOMATION_ENABLED == 'true' &&
|
|
55
|
-
(github.actor == github.repository_owner || github.event_name == 'workflow_run'
|
|
87
|
+
(github.actor == github.repository_owner || github.event_name == 'workflow_run' ||
|
|
88
|
+
(github.event_name == 'workflow_dispatch' && github.actor == 'github-actions[bot]' && inputs.stage == 'implement' && inputs.after_run != '')) &&
|
|
56
89
|
(github.event_name == 'workflow_dispatch' || github.event_name == 'workflow_run' ||
|
|
57
|
-
|
|
90
|
+
(github.event_name == 'issues' && (github.event.label.name == 'triage' || github.event.label.name == 'refine' || github.event.label.name == 'propose' || github.event.label.name == 'implement' || (github.event.action == 'unlabeled' && github.event.label.name == 'future'))) ||
|
|
58
91
|
github.event_name == 'issue_comment' || github.event_name == 'pull_request_review' || github.event_name == 'pull_request_review_comment')
|
|
59
92
|
runs-on: ubuntu-24.04
|
|
60
93
|
permissions:
|