@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.
Files changed (46) hide show
  1. package/README.md +48 -125
  2. package/capabilities.json +14 -8
  3. package/completion.md +2 -2
  4. package/github-actions.md +104 -0
  5. package/host-contract.md +1 -1
  6. package/model-profiles.md +101 -0
  7. package/package.json +9 -1
  8. package/request-triage.md +32 -0
  9. package/schemas/estimate.schema.json +23 -0
  10. package/schemas/request-analysis.schema.json +37 -0
  11. package/schemas/triage.schema.json +1 -0
  12. package/skills/concise-results/SKILL.md +10 -0
  13. package/skills/refine/SKILL.md +1 -1
  14. package/skills/triage/SKILL.md +3 -3
  15. package/src/completion.mjs +1 -1
  16. package/src/host-contract.mjs +3 -0
  17. package/src/implementation.mjs +6 -1
  18. package/src/install-workflows.mjs +11 -5
  19. package/src/integration-evidence.mjs +1 -1
  20. package/src/issue-actions.mjs +62 -18
  21. package/src/model-profiles.mjs +58 -0
  22. package/src/opencode-execute.mjs +17 -4
  23. package/src/pr-state-actions.mjs +106 -0
  24. package/src/pr-state.mjs +75 -0
  25. package/src/profile-delegation.mjs +111 -0
  26. package/src/proposal.mjs +1 -1
  27. package/src/request-triage.mjs +42 -0
  28. package/src/stage-dispatch.mjs +21 -5
  29. package/src/stage-transition.mjs +10 -0
  30. package/src/triage.mjs +4 -0
  31. package/templates/change-request.yml +24 -0
  32. package/workflows/lighthouse-sdlc-apply-review.lock.yml +14 -13
  33. package/workflows/lighthouse-sdlc-apply-review.md +2 -1
  34. package/workflows/lighthouse-sdlc-implement.lock.yml +13 -13
  35. package/workflows/lighthouse-sdlc-implement.md +1 -1
  36. package/workflows/lighthouse-sdlc-integrate.lock.yml +13 -13
  37. package/workflows/lighthouse-sdlc-integrate.md +1 -1
  38. package/workflows/lighthouse-sdlc-propose.lock.yml +13 -13
  39. package/workflows/lighthouse-sdlc-propose.md +1 -1
  40. package/workflows/lighthouse-sdlc-refine.lock.yml +18 -13
  41. package/workflows/lighthouse-sdlc-refine.md +6 -1
  42. package/workflows/lighthouse-sdlc-review.lock.yml +13 -13
  43. package/workflows/lighthouse-sdlc-review.md +1 -1
  44. package/workflows/lighthouse-sdlc-router.yml +38 -5
  45. package/workflows/lighthouse-sdlc-triage.lock.yml +283 -1169
  46. package/workflows/lighthouse-sdlc-triage.md +175 -29
@@ -1,4 +1,4 @@
1
- # gh-aw-metadata: {"schema_version":"v4","frontmatter_hash":"58805431bb7988869237052ccb9fd922d620fc6250f36e39aa57d55244f6975b","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\"]"}
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: "Lighthouse SDLC review"
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=Lighthouse%20SDLC%20review,gh-aw.repository=${{ github.repository }},gh-aw.run.id=${{ github.run_id }},github.run_id=${{ github.run_id }},gh-aw.engine.id=opencode'
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: "Lighthouse SDLC review"
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: "Lighthouse SDLC review"
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: "Lighthouse SDLC review"
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: "Lighthouse SDLC review"
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: "Lighthouse SDLC review"
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: "Lighthouse SDLC review"
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: "Lighthouse SDLC review"
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: "Lighthouse SDLC review"
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: "Lighthouse SDLC review"
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: "Lighthouse SDLC review"
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: Lighthouse SDLC review
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: Lighthouse SDLC router
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
- (github.event_name == 'issues' && (github.event.label.name == 'refine' || github.event.label.name == 'propose' || github.event.label.name == 'implement' || (github.event.action == 'unlabeled' && github.event.label.name == 'future'))) ||
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: