Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
215 commits
Select commit Hold shift + click to select a range
28b1c24
Merge branch 'release/1.1.0'
shibu-kv Mar 20, 2025
50c8b58
Merge branch 'release/1.2.0'
shibu-kv Mar 31, 2025
4a05dc9
Update system_utils.c
Abhinavpv28 Apr 30, 2025
d21d9e0
Update system_utils.c
Abhinavpv28 Apr 30, 2025
1a72f21
Update system_utils.c
Abhinavpv28 Apr 30, 2025
ad77473
Update system_utils.c
Abhinavpv28 Apr 30, 2025
d9b881b
Update system_utils.c
Abhinavpv28 Apr 30, 2025
fa7915a
Update system_utils.c
Abhinavpv28 Apr 30, 2025
ed184df
Update system_utils.c
Abhinavpv28 May 1, 2025
7304fb1
Update urlHelper.c
Abhinavpv28 May 1, 2025
27884bc
Update system_utils.c
Abhinavpv28 May 1, 2025
3dcfcad
Update system_utils.c
Abhinavpv28 May 1, 2025
4fa9e08
Update urlHelper.c
Abhinavpv28 May 1, 2025
d3a156f
Update system_utils.c
Abhinavpv28 May 1, 2025
59acf28
Update system_utils.c
Abhinavpv28 May 1, 2025
e4da7fa
Update system_utils.c
Abhinavpv28 May 1, 2025
e441664
Update system_utils.c
Abhinavpv28 May 1, 2025
734c4d1
Update system_utils.c
Abhinavpv28 May 1, 2025
8b13d48
Update rdk_fwdl_utils.c
Abhinavpv28 May 1, 2025
ed6a6fb
Update urlHelper.c
Abhinavpv28 May 1, 2025
8003362
Update urlHelper.c
Abhinavpv28 May 1, 2025
4308d22
Update urlHelper.c
Abhinavpv28 May 1, 2025
8c58c06
Update urlHelper.c
Abhinavpv28 May 1, 2025
baec8ea
Update system_utils.c
Abhinavpv28 May 1, 2025
a51865b
Update system_utils.c
Abhinavpv28 May 1, 2025
a2aed3f
Update system_utils.c
Abhinavpv28 May 1, 2025
e538b48
Update system_utils.c
Abhinavpv28 May 1, 2025
de3d994
Update system_utils.c
Abhinavpv28 May 1, 2025
7813f70
Update system_utils.c
Abhinavpv28 May 2, 2025
44d02c3
Update system_utils.c
Abhinavpv28 May 3, 2025
4e4f86f
Update system_utils.c
Abhinavpv28 May 3, 2025
194168d
Update system_utils.c
Abhinavpv28 May 3, 2025
c362051
Update urlHelper.c
Abhinavpv28 May 3, 2025
196c077
Update system_utils.c
Abhinavpv28 May 3, 2025
7a13f8a
Update system_utils.c
Abhinavpv28 May 3, 2025
3e45a01
Update system_utils.c
Abhinavpv28 May 3, 2025
fc1b5c1
Update system_utils.c
Abhinavpv28 May 5, 2025
a5ec679
Update system_utils.c
Abhinavpv28 May 6, 2025
a125e01
Update system_utils.c
Abhinavpv28 May 7, 2025
da8fd08
Update urlHelper.c
Abhinavpv28 May 7, 2025
7e8640a
Update urlHelper.c
Abhinavpv28 May 7, 2025
d9441e2
Update urlHelper.c
Abhinavpv28 May 7, 2025
966bdde
Update system_utils.c
Abhinavpv28 May 8, 2025
d510b86
Update system_utils.c
Abhinavpv28 May 8, 2025
cf5701a
Update system_utils.c
Abhinavpv28 May 8, 2025
7b94997
Update system_utils.c
Abhinavpv28 May 8, 2025
4314fac
Update system_utils.c
Abhinavpv28 May 8, 2025
ace8ea1
Update system_utils.c
Abhinavpv28 May 9, 2025
3f559ce
Update system_utils.c
Abhinavpv28 May 9, 2025
b537595
Update urlHelper.c
Abhinavpv28 May 12, 2025
d57c6e7
Update rdk_fwdl_utils.c
Abhinavpv28 May 12, 2025
a17eec6
Update rdk_fwdl_utils.c
Abhinavpv28 May 12, 2025
d26c953
Update system_utils.c
Abhinavpv28 May 14, 2025
e8cfba8
Update system_utils.c
Abhinavpv28 May 14, 2025
ec535a4
Update system_utils.c
Abhinavpv28 May 14, 2025
22321f7
Update system_utils.c
Abhinavpv28 May 14, 2025
1c262fa
Update system_utils.c
Abhinavpv28 May 14, 2025
574a59f
Update system_utils.c
Abhinavpv28 May 14, 2025
0e88c0d
Update system_utils.c
Abhinavpv28 May 14, 2025
ecc063e
Update system_utils.c
Abhinavpv28 May 14, 2025
9c984ab
Update system_utils.c
Abhinavpv28 May 15, 2025
311727a
Update system_utils.c
Abhinavpv28 May 16, 2025
311cefb
Update system_utils.c
Abhinavpv28 May 16, 2025
c6cfc52
Update system_utils.c
Abhinavpv28 May 16, 2025
27c0ced
Update urlHelper.c
Abhinavpv28 May 16, 2025
d4c513f
Update urlHelper.c
Abhinavpv28 May 16, 2025
c157176
Update urlHelper.c
Abhinavpv28 May 16, 2025
2d2f947
Update urlHelper.c
Abhinavpv28 May 16, 2025
4e8e87e
Update system_utils.c
Abhinavpv28 May 16, 2025
657f0d6
Update system_utils.c
Abhinavpv28 May 16, 2025
95db726
Update urlHelper.c
Abhinavpv28 May 29, 2025
70eb962
Update urlHelper.c
Abhinavpv28 May 29, 2025
a8aa1e9
Update urlHelper.c
Abhinavpv28 May 29, 2025
ce29d3d
Update urlHelper.c
Abhinavpv28 May 29, 2025
1b23c2d
Merge pull request #28 from rdkcentral/feature/coverity
nhanasi May 29, 2025
7bdf10c
1.2.1 release changelog updates
naveenkumarhanasi May 29, 2025
11266dd
Merge branch 'release/1.2.1' into main
naveenkumarhanasi May 29, 2025
e131b4f
Deploy cla action
rdkcmf-jenkins Jun 24, 2025
108393b
Update urlHelper.c
nhanasi Jun 30, 2025
5b34c4c
Merge pull request #34 from rdkcentral/feature/RDKEMW-5593
venkat0557 Jun 30, 2025
9c6ffac
RDK-58232 - Federated Source Code (#39)
Abhinavpv28 Jul 11, 2025
899c5b0
1.3.0 release changelog updates
naveenkumarhanasi Jul 14, 2025
3b3f137
Merge branch 'release/1.3.0' into main
naveenkumarhanasi Jul 14, 2025
5c91abe
Merge tag '1.3.0' into develop
naveenkumarhanasi Jul 14, 2025
b4e8d3e
Update system_utils.c
Abhinavpv28 Aug 8, 2025
dcbb1f6
Update system_utils.c
Abhinavpv28 Aug 8, 2025
37931f1
Merge pull request #42 from rdkcentral/feature/DELIA-68666
nhanasi Aug 8, 2025
f11b78a
RDK-58818 : Add api to support url percentage encoding (#43)
shivabhaskar Aug 19, 2025
2a003f7
1.4.0 release changelog updates
tdeva14 Aug 19, 2025
c4304d6
Merge branch 'release/1.4.0' into main
tdeva14 Aug 19, 2025
cdbfc9d
Merge tag '1.4.0' into develop
tdeva14 Aug 19, 2025
aa6e458
RDKB-61159 [AUTO-SKY][Sprint]RFC is not working (#46)
nhanasi Aug 19, 2025
592622c
RDKB-61159 [AUTO-SKY][Sprint]RFC is not working (#48)
nhanasi Aug 19, 2025
8012a82
1.4.1 release changelog updates
naveenkumarhanasi Aug 20, 2025
e4992be
Merge branch 'release/1.4.1' into main
naveenkumarhanasi Aug 20, 2025
a30045b
Merge tag '1.4.1' into develop
naveenkumarhanasi Aug 20, 2025
0b745f9
RDK-59014, RDKEMW-7271 : Add support for CURL 56 in urlHelperDownload…
shivabhaskar Sep 12, 2025
46289dd
RDK-59064:[RDK-E][POC] Transform rdkfwupgrader into library-driven ar…
mkadinti Sep 13, 2025
3009247
RDK-59064:[RDK-E][POC] Transform rdkfwupgrader into library-driven ar…
mkadinti Sep 14, 2025
fb01b72
RDK-59064:[RDK-E][POC] Transform rdkfwupgrader into library-driven ar…
mkadinti Sep 14, 2025
ec9ca6c
1.4.2 release changelog updates
tdeva14 Sep 15, 2025
b180693
Merge branch 'release/1.4.2' into main
tdeva14 Sep 15, 2025
49a1093
Merge tag '1.4.2' into develop
tdeva14 Sep 15, 2025
fea832a
RDK-59064:[RDK-E][POC] Transform rdkfwupgrader into library-driven ar…
mkadinti Sep 16, 2025
b9a4c2c
RDK-59064:[RDK-E][POC] Transform rdkfwupgrader into library-driven ar…
mkadinti Sep 16, 2025
385e247
RDK-59064:[RDK-E][POC] Transform rdkfwupgrader into library-driven ar…
mkadinti Sep 16, 2025
09443da
RDK-59064:[RDK-E][POC] Transform rdkfwupgrader into library-driven ar…
mkadinti Sep 16, 2025
e44b47b
RDK-59064:[RDK-E][POC] Transform rdkfwupgrader into library-driven ar…
mkadinti Sep 16, 2025
110e991
RDK-59064:[RDK-E][POC] Transform rdkfwupgrader into library-driven ar…
mkadinti Sep 17, 2025
4c865c6
RDK-59064:[RDK-E][POC] Transform rdkfwupgrader into library-driven ar…
mkadinti Sep 17, 2025
bccd62c
RDK-59064:[RDK-E][POC] Transform rdkfwupgrader into library-driven ar…
mkadinti Sep 17, 2025
f9c43c8
Add .gitattributes to enforce LF line endings
mkadinti Sep 18, 2025
a8fbc73
Fix: remove accidental CRLF line endings
mkadinti Sep 18, 2025
ffeff6d
RDK-59014: Add support for CURL 56 in urlHelperDownloadFile API (#55)
shivabhaskar Sep 19, 2025
5c9e161
Changelog updates for 1.4.3 release
shibu-kv Sep 19, 2025
071361f
Merge branch 'release/1.4.3'
shibu-kv Sep 19, 2025
6ea7f59
Merge branch 'release/1.4.3' into develop
shibu-kv Sep 19, 2025
8e2476a
RDK-59064:[RDK-E][POC] Transform rdkfwupgrader into library-driven ar…
mkadinti Sep 22, 2025
cac1a37
Update CODEOWNERS
sbarre01 Sep 22, 2025
553dfad
Merge branch 'develop' into feature/action-deploy-for/develop
rdkcmf-jenkins Sep 26, 2025
ef47f16
Deploy cla action
rdkcmf-jenkins Sep 26, 2025
6772de6
Merge pull request #33 from rdkcentral/feature/action-deploy-for/develop
Alan-Ryan Sep 26, 2025
aadecc5
Deploy fossid_integration_stateless_diffscan_target_repo action
rdkcmf-jenkins Sep 29, 2025
873b840
Merge pull request #59 from rdkcentral/feature/actions/develop-fossid
Alan-Ryan Sep 29, 2025
bea3c72
Merge remote-tracking branch 'origin/RDK-59064' into topic/RDK-59276-…
mkadinti Oct 7, 2025
0c78817
RDK-59276 : [RDK-E] Transform rdkfwupgrader into library-driven archi…
mkadinti Oct 7, 2025
ff31a96
RDK-59276 : [RDK-E] Transform rdkfwupgrader into library-driven arch…
mkadinti Nov 10, 2025
e9a238d
RDK-59276 : [RDK-E] Transform rdkfwupgrader into library-driven arch…
mkadinti Nov 10, 2025
655a6b6
RDK-59276 : Transform rdkfwupgrader into library-driven architecture
satya200 Nov 10, 2025
a3c9fa7
1.4.4 release changelog updates
satya200 Nov 11, 2025
5c7dfc4
Merge branch 'release/1.4.4'
satya200 Nov 11, 2025
9eef901
Merge tag '1.4.4' into develop
satya200 Nov 11, 2025
661e1bb
Migration of logupload script
Dec 1, 2025
2416e58
Delete uploadutils/mtls_upload.h_bkp
Abhinavpv28 Dec 1, 2025
014e045
Delete uploadutils/mtls_upload.c_bkp
Abhinavpv28 Dec 1, 2025
e96d0fc
Add files via upload
Abhinavpv28 Dec 8, 2025
1d0522a
Add files via upload
Abhinavpv28 Dec 8, 2025
8607f67
Update L1-Test.yaml
Abhinavpv28 Dec 8, 2025
307a213
Add files via upload
Abhinavpv28 Dec 8, 2025
5b47311
Add files via upload
Abhinavpv28 Dec 8, 2025
a86c723
Add files via upload
Abhinavpv28 Dec 8, 2025
2b6eab5
Create Makefile.am
Abhinavpv28 Dec 8, 2025
0614d7f
Add files via upload
Abhinavpv28 Dec 8, 2025
e5e3ca1
Add files via upload
Abhinavpv28 Dec 8, 2025
559a8c2
Add files via upload
Abhinavpv28 Dec 8, 2025
b620bb8
Add files via upload
Abhinavpv28 Dec 8, 2025
42cae7d
Rename Makefile.am to Makefile.am
Abhinavpv28 Dec 8, 2025
0a5328c
Rename codebig_upload_gtest.cpp to codebig_upload_gtest.cpp
Abhinavpv28 Dec 8, 2025
dff1b0e
Rename configure.ac to configure.ac
Abhinavpv28 Dec 8, 2025
29e812b
Rename mtls_upload_gtest.cpp to mtls_upload_gtest.cpp
Abhinavpv28 Dec 8, 2025
d424db4
Rename uploadUtil_gtest.cpp to uploadUtil_gtest.cpp
Abhinavpv28 Dec 8, 2025
5ab89bf
Rename upload_status_gtest.cpp to upload_status_gtest.cpp
Abhinavpv28 Dec 8, 2025
01b59af
Update Makefile.am
Abhinavpv28 Dec 10, 2025
0c766b9
Update Makefile.am
Abhinavpv28 Dec 10, 2025
165b003
Change trigger from push to pull_request for tests
Abhinavpv28 Dec 10, 2025
266fb9f
Delete uploadutils/main_upload_test.c
Abhinavpv28 Dec 12, 2025
5013d06
Update copyright header
Dec 15, 2025
8144619
Update Makefile.am
Abhinavpv28 Dec 16, 2025
caa815a
Update configure.ac
Abhinavpv28 Dec 16, 2025
e6ab839
Update Makefile.am
Abhinavpv28 Dec 16, 2025
6271faa
Update Makefile.am
Abhinavpv28 Dec 16, 2025
5b4c463
Update configure.ac
Abhinavpv28 Dec 16, 2025
969474b
Update configure.ac
Abhinavpv28 Dec 16, 2025
c325e25
RDKEMW-12237: Uploadlib use same file to get S3 url output for all th…
satya200 Jan 16, 2026
35467b6
Common Utils 1.5.0 release changelog updates
naveenkumarhanasi Jan 20, 2026
95f179f
Merge branch 'release/1.5.0'
nhanasi Jan 21, 2026
665cba3
Merge tag '1.5.0' into develop
nhanasi Jan 21, 2026
c71b19d
RDKEMW-12849: Update to print logs to console
karuna2git Jan 29, 2026
9ddea87
RDK-57502 - [RDKE] Migrate Operation Support Log Upload Related Scrip…
Abhinavpv28 Feb 3, 2026
0244fc7
Merge branch 'develop' into topic/RDKEMW-12849
mkadinti Feb 3, 2026
c53186c
Common Utils 1.5.1 release changelog updates
naveenkumarhanasi Feb 3, 2026
5a4e196
Merge branch 'release/1.5.1'
naveenkumarhanasi Feb 3, 2026
48a8eef
Merge tag '1.5.1' into develop
naveenkumarhanasi Feb 3, 2026
57c726f
Merge branch 'develop' into topic/RDKEMW-12849
satya200 Feb 5, 2026
f8769f0
Merge pull request #74 from rdkcentral/topic/RDKEMW-12849
satya200 Feb 6, 2026
584486e
1.5.2 release changelog updates
satya200 Feb 6, 2026
aea4d38
Merge branch 'release/1.5.2'
satya200 Feb 6, 2026
ae37771
Merge tag '1.5.2' into develop
satya200 Feb 6, 2026
1c484b8
Update system_utils.c
mkadinti Feb 26, 2026
7d13e27
Apply suggestion from @Copilot
mkadinti Feb 26, 2026
ab7f566
Update system_utils.h
mkadinti Feb 26, 2026
837bf1b
Update system_utils.c
mkadinti Feb 26, 2026
e1317fe
RDKTV-39792:[RDKV] Xumo TV devices with older builds failing to upgra…
mkadinti Feb 26, 2026
529c7e6
Merge branch 'topic/RDKTV-39792' of https://github.com/rdkcentral/com…
mkadinti Feb 26, 2026
ca7dc40
Update utils/system_utils.c
mkadinti Feb 26, 2026
b2d9c11
Update system_utils.h
mkadinti Feb 26, 2026
f0f78f0
Update system_utils.c
mkadinti Feb 26, 2026
b22915e
Update system_utils.c
mkadinti Feb 26, 2026
43902e5
Apply suggestion from @Copilot
mkadinti Feb 26, 2026
cfd8a97
RDKTV-39792:[RDKV] Xumo TV devices with older builds failing to upgra…
mkadinti Feb 26, 2026
dea382a
RDKTV-39792:[RDKV] Xumo TV devices with older builds failing to upgra…
mkadinti Feb 26, 2026
8fd1ccf
Update system_utils.c
mkadinti Mar 2, 2026
777c462
RDKTV-39792:[RDKV] Xumo TV devices with older builds failing to upgra…
mkadinti Mar 2, 2026
4c8c735
RDKTV-39792:[RDKV] Xumo TV devices with older builds failing to upgra…
mkadinti Mar 2, 2026
1247574
RDKTV-39792:[RDKV] Xumo TV devices with older builds failing to upgra…
mkadinti Mar 2, 2026
a0bb779
RDKTV-39792:[RDKV] Xumo TV devices with older builds failing to upgra…
mkadinti Mar 3, 2026
22aeabb
RDKTV-39792:[RDKV] Xumo TV devices with older builds failing to upgra…
mkadinti Mar 3, 2026
fa63433
Update system_utils.c
mkadinti Mar 3, 2026
015143d
Update system_utils.c
mkadinti Mar 3, 2026
8dfa5c7
RDKTV-39792:[RDKV] Xumo TV devices with older builds failing to upgra…
mkadinti Mar 3, 2026
7869781
Update system_utils.c
mkadinti Mar 3, 2026
8cec9d7
Merge pull request #82 from rdkcentral/topic/RDKTV-39792
satya200 Mar 6, 2026
86b6724
1.5.3 release changelog updates
satya200 Mar 9, 2026
b75c844
Merge branch 'release/1.5.3'
satya200 Mar 9, 2026
3fdee0b
Merge tag '1.5.3' into develop
satya200 Mar 9, 2026
17ca480
RDKEMW-12516 : Triggering a non-existent/misspelled issue type in RRD…
Abhinavpv28 Mar 16, 2026
e2d4cc8
RDKEMW-15829: Add mountutils and certselector support guards for L2 C…
gomathishankar37 Mar 30, 2026
60c5089
1.5.4 release changelog updates
satya200 Mar 31, 2026
45ef9f4
Merge branch 'release/1.5.4'
satya200 Mar 31, 2026
505de48
Merge tag '1.5.4' into develop
satya200 Mar 31, 2026
0fec3b1
RDKEMW-16701: Add curl Verbose logging under CURL_DEBUG flag (#92)
gomathishankar37 Apr 15, 2026
f50795d
1.5.5 release changelog updates
satya200 Apr 28, 2026
c083943
Merge branch 'release/1.5.5'
satya200 Apr 28, 2026
a97a431
Merge tag '1.5.5' into develop
satya200 Apr 28, 2026
cc89536
RDKEMW-18322: Onboard common-utilities repository to OpenSpec SDD (#99)
satya200 Jul 3, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@
# the repo. Unless a later match takes precedence,
# @global-owner1 and @global-owner2 will be requested for
# review when someone opens a pull request.
* @rdkcentral/rdke_ghec_sysint_maintainer @rdkcentral/rdke_ghec_sysint_admin
* @rdkcentral/rdke_ghec_sysint_maintainer
152 changes: 152 additions & 0 deletions .github/prompts/opsx-apply.prompt.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,152 @@
---
description: Implement tasks from an OpenSpec change (Experimental)
---

Implement tasks from an OpenSpec change.

**Store selection:** If the user names a store (a store is a standalone OpenSpec repo registered on this machine) or the work lives in one, run `openspec store list --json` to discover registered store ids, then pass `--store <id>` on the commands that read or write specs and changes (`new change`, `status`, `instructions`, `list`, `show`, `validate`, `archive`, `doctor`, `context`). Other commands do not take the flag. Hints printed by commands already carry the flag; keep it on follow-ups. Without a store, commands act on the nearest local `openspec/` root.

**Input**: Optionally specify a change name (e.g., `/opsx:apply add-auth`). If omitted, check if it can be inferred from conversation context. If vague or ambiguous you MUST prompt for available changes.

**Steps**

1. **Select the change**

If a name is provided, use it. Otherwise:
- Infer from conversation context if the user mentioned a change
- Auto-select if only one active change exists
- If ambiguous, run `openspec list --json` to get available changes and use the **AskUserQuestion tool** to let the user select

Always announce: "Using change: <name>" and how to override (e.g., `/opsx:apply <other>`).

2. **Check status to understand the schema**
```bash
openspec status --change "<name>" --json
```
Parse the JSON to understand:
- `schemaName`: The workflow being used (e.g., "spec-driven")
- `planningHome`, `changeRoot`, and `actionContext`: planning scope and edit constraints
- Which artifact contains the tasks (typically "tasks" for spec-driven, check status for others)

3. **Get apply instructions**

```bash
openspec instructions apply --change "<name>" --json
```

This returns:
- `contextFiles`: artifact ID -> array of concrete file paths (varies by schema)
- Progress (total, complete, remaining)
- Task list with status
- Dynamic instruction based on current state

**Handle states:**
- If `state: "blocked"` (missing artifacts): show message, suggest using `/opsx:continue`
- If `state: "all_done"`: congratulate, suggest archive
- Otherwise: proceed to implementation

4. **Read context files**

Read every file path listed under `contextFiles` from the apply instructions output.
The files depend on the schema being used:
- **spec-driven**: proposal, specs, design, tasks
- Other schemas: follow the contextFiles from CLI output

5. **Show current progress**

Display:
- Schema being used
- Progress: "N/M tasks complete"
- Remaining tasks overview
- Dynamic instruction from CLI

6. **Implement tasks (loop until done or blocked)**

For each pending task:
- Show which task is being worked on
- Make the code changes required
- Keep changes minimal and focused
- Mark task complete in the tasks file: `- [ ]` → `- [x]`
- Continue to next task

**Pause if:**
- Task is unclear → ask for clarification
- Implementation reveals a design issue → suggest updating artifacts
- Error or blocker encountered → report and wait for guidance
- User interrupts

7. **On completion or pause, show status**

Display:
- Tasks completed this session
- Overall progress: "N/M tasks complete"
- If all done: suggest archive
- If paused: explain why and wait for guidance

**Output During Implementation**

```
## Implementing: <change-name> (schema: <schema-name>)

Working on task 3/7: <task description>
[...implementation happening...]
✓ Task complete

Working on task 4/7: <task description>
[...implementation happening...]
✓ Task complete
```

**Output On Completion**

```
## Implementation Complete

**Change:** <change-name>
**Schema:** <schema-name>
**Progress:** 7/7 tasks complete ✓

### Completed This Session
- [x] Task 1
- [x] Task 2
...

All tasks complete! You can archive this change with `/opsx:archive`.
```

**Output On Pause (Issue Encountered)**

```
## Implementation Paused

**Change:** <change-name>
**Schema:** <schema-name>
**Progress:** 4/7 tasks complete

### Issue Encountered
<description of the issue>

**Options:**
1. <option 1>
2. <option 2>
3. Other approach

What would you like to do?
```

**Guardrails**
- Keep going through tasks until done or blocked
- Always read context files before starting (from the apply instructions output)
- If task is ambiguous, pause and ask before implementing
- If implementation reveals issues, pause and suggest artifact updates
- Keep code changes minimal and scoped to each task
- Update task checkbox immediately after completing each task
- Pause on errors, blockers, or unclear requirements - don't guess
- Use contextFiles from CLI output, don't assume specific file names

**Fluid Workflow Integration**

This skill supports the "actions on a change" model:

- **Can be invoked anytime**: Before all artifacts are done (if tasks exist), after partial implementation, interleaved with other actions
- **Allows artifact updates**: If implementation reveals design issues, suggest updating artifacts - not phase-locked, work fluidly
157 changes: 157 additions & 0 deletions .github/prompts/opsx-archive.prompt.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,157 @@
---
description: Archive a completed change in the experimental workflow
---

Archive a completed change in the experimental workflow.

**Store selection:** If the user names a store (a store is a standalone OpenSpec repo registered on this machine) or the work lives in one, run `openspec store list --json` to discover registered store ids, then pass `--store <id>` on the commands that read or write specs and changes (`new change`, `status`, `instructions`, `list`, `show`, `validate`, `archive`, `doctor`, `context`). Other commands do not take the flag. Hints printed by commands already carry the flag; keep it on follow-ups. Without a store, commands act on the nearest local `openspec/` root.

**Input**: Optionally specify a change name after `/opsx:archive` (e.g., `/opsx:archive add-auth`). If omitted, check if it can be inferred from conversation context. If vague or ambiguous you MUST prompt for available changes.

**Steps**

1. **If no change name provided, prompt for selection**

Run `openspec list --json` to get available changes. Use the **AskUserQuestion tool** to let the user select.

Show only active changes (not already archived).
Include the schema used for each change if available.

**IMPORTANT**: Do NOT guess or auto-select a change. Always let the user choose.

2. **Check artifact completion status**

Run `openspec status --change "<name>" --json` to check artifact completion.

Parse the JSON to understand:
- `schemaName`: The workflow being used
- `planningHome`, `changeRoot`, `artifactPaths`, and `actionContext`: path and scope context
- `artifacts`: List of artifacts with their status (`done` or other)

**If any artifacts are not `done`:**
- Display warning listing incomplete artifacts
- Prompt user for confirmation to continue
- Proceed if user confirms

3. **Check task completion status**

Read the tasks file (typically `tasks.md`) to check for incomplete tasks.

Count tasks marked with `- [ ]` (incomplete) vs `- [x]` (complete).

**If incomplete tasks found:**
- Display warning showing count of incomplete tasks
- Prompt user for confirmation to continue
- Proceed if user confirms

**If no tasks file exists:** Proceed without task-related warning.

4. **Assess delta spec sync state**

Use `artifactPaths.specs.existingOutputPaths` from status JSON to check for delta specs. If none exist, proceed without sync prompt.

**If delta specs exist:**
- Compare each delta spec with its corresponding main spec at `openspec/specs/<capability>/spec.md`
- Determine what changes would be applied (adds, modifications, removals, renames)
- Show a combined summary before prompting

**Prompt options:**
- If changes needed: "Sync now (recommended)", "Archive without syncing"
- If already synced: "Archive now", "Sync anyway", "Cancel"

If user chooses sync, use Task tool (subagent_type: "general-purpose", prompt: "Use Skill tool to invoke openspec-sync-specs for change '<name>'. Delta spec analysis: <include the analyzed delta spec summary>"). Proceed to archive regardless of choice.

5. **Perform the archive**

Create an `archive` directory under `planningHome.changesDir` if it doesn't exist:
```bash
mkdir -p "<planningHome.changesDir>/archive"
```

Generate target name using current date: `YYYY-MM-DD-<change-name>`

**Check if target already exists:**
- If yes: Fail with error, suggest renaming existing archive or using different date
- If no: Move `changeRoot` to the archive directory

```bash
mv "<changeRoot>" "<planningHome.changesDir>/archive/YYYY-MM-DD-<name>"
```

6. **Display summary**

Show archive completion summary including:
- Change name
- Schema that was used
- Archive location
- Spec sync status (synced / sync skipped / no delta specs)
- Note about any warnings (incomplete artifacts/tasks)

**Output On Success**

```
## Archive Complete

**Change:** <change-name>
**Schema:** <schema-name>
**Archived to:** the archive path derived from `planningHome.changesDir`/YYYY-MM-DD-<name>/
**Specs:** ✓ Synced to main specs

All artifacts complete. All tasks complete.
```

**Output On Success (No Delta Specs)**

```
## Archive Complete

**Change:** <change-name>
**Schema:** <schema-name>
**Archived to:** the archive path derived from `planningHome.changesDir`/YYYY-MM-DD-<name>/
**Specs:** No delta specs

All artifacts complete. All tasks complete.
```

**Output On Success With Warnings**

```
## Archive Complete (with warnings)

**Change:** <change-name>
**Schema:** <schema-name>
**Archived to:** the archive path derived from `planningHome.changesDir`/YYYY-MM-DD-<name>/
**Specs:** Sync skipped (user chose to skip)

**Warnings:**
- Archived with 2 incomplete artifacts
- Archived with 3 incomplete tasks
- Delta spec sync was skipped (user chose to skip)

Review the archive if this was not intentional.
```

**Output On Error (Archive Exists)**

```
## Archive Failed

**Change:** <change-name>
**Target:** the archive path derived from `planningHome.changesDir`/YYYY-MM-DD-<name>/

Target archive directory already exists.

**Options:**
1. Rename the existing archive
2. Delete the existing archive if it's a duplicate
3. Wait until a different date to archive
```

**Guardrails**
- Always prompt for change selection if not provided
- Use artifact graph (openspec status --json) for completion checking
- Don't block archive on warnings - just inform and confirm
- Preserve .openspec.yaml when moving to archive (it moves with the directory)
- Show clear summary of what happened
- If sync is requested, use the Skill tool to invoke `openspec-sync-specs` (agent-driven)
- If delta specs exist, always run the sync assessment and show the combined summary before prompting
Loading