@carecard/validate 3.28.0 → 3.30.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,117 @@
1
+ ---
2
+ name: carecard-must-do
3
+ description: 'Non-negotiable startup requirements for every agent, including Codex, Claude, other assistants, and delegated agents. Load first whenever beginning or resuming any task to govern questions, visible working copies, and working-branch continuity.'
4
+ ---
5
+
6
+ # CareCard Must Do
7
+
8
+ ## Explicit approval before GitHub settings changes
9
+
10
+ Before changing any GitHub setting, explain the exact proposed change, ask the
11
+ user explicitly, and wait for their approval. This includes temporary changes
12
+ to GitHub Actions, workflow enablement, branch protection, and repository or
13
+ organization settings. Authorization to commit, push, merge, tag, cancel runs,
14
+ or clean up branches does not authorize settings changes.
15
+
16
+ ## Mandatory for every agent
17
+
18
+ Every agent must read and follow this skill before beginning or resuming work
19
+ in this repository. This applies regardless of provider, product, model, role,
20
+ or invocation method, including Codex, Claude, other assistants, and delegated
21
+ agents. Planning, questions, read-only investigation, coding, review,
22
+ documentation, validation, and Git operations are all covered.
23
+
24
+ Load this skill first, then the repository's mandatory engineering standards,
25
+ then the specialist skills relevant to the task. Continue applying these rules
26
+ throughout the task. When entering another repository, read its local copy.
27
+ When delegation is already authorized, give delegated agents this same startup
28
+ requirement. An agent without automatic skill discovery must open this file
29
+ explicitly; its lack of discovery support is not an exemption.
30
+
31
+ ## Explain the issue and solutions before asking
32
+
33
+ Before every user-facing question, including a clarification, preference,
34
+ approval request, or question presented through a tool, explain:
35
+
36
+ - the relevant facts and what is uncertain or needs to change;
37
+ - the issue and why the user's answer is needed;
38
+ - the viable solutions or next steps and their practical consequences; and
39
+ - the recommended solution and the reason for that recommendation.
40
+
41
+ Make the explanation detailed enough for a first-year engineering student to
42
+ understand. Define necessary technical terms and distinguish observed facts
43
+ from assumptions. Explain concrete effects rather than relying on unexplained
44
+ jargon. Do not invent alternatives when only one practical next step exists.
45
+
46
+ Present the question after the explanation. Resolve discoverable facts through
47
+ appropriate inspection before asking the user to supply them. This requirement
48
+ does not create a reason to ask unnecessary questions or repeat an approval
49
+ already granted for the action.
50
+
51
+ ## Keep the working repository visible
52
+
53
+ Make changes in the normal repository directory the user is working in. Do not
54
+ routinely replace it with a clone, linked worktree, detached checkout, or other
55
+ working copy under `/tmp`, a system temporary directory, a cache, or a hidden or
56
+ undisclosed location. A branch names a line of work; a worktree or clone creates
57
+ another working directory. Do not use either to hide where changes are made.
58
+
59
+ A separate working directory is permitted only for a compelling technical
60
+ reason, such as isolation that is necessary to protect unrelated active work.
61
+ Before creating it, explain why the normal checkout cannot safely serve the
62
+ task, disclose the exact directory and branch, and explain how the finished
63
+ work will remain accessible in the normal repository. Convenience alone is
64
+ not a compelling reason. This disclosure adds no separate approval step;
65
+ existing authorization requirements still apply.
66
+
67
+ Keep ownership and handoff explicit, preserve unrelated work, and clean up only
68
+ resources owned by the task when cleanup is authorized. Ordinary temporary
69
+ logs, build artifacts, and test fixtures are permitted when they are not used
70
+ as an undisclosed replacement working repository.
71
+
72
+ ## Choose and refresh the working branch
73
+
74
+ Reuse the current working branch for every follow-up request, even when the
75
+ subject changes or the working tree is clean. Create a branch only when no
76
+ working branch exists or the checkout is on `main` or `development`. Otherwise,
77
+ fetch remote `main` HEAD and rebase the same working branch onto that fetched
78
+ commit, preserving its commits and uncommitted work.
79
+
80
+ Identify the repository directory, current branch, and working-tree state.
81
+ Fetch `origin/main` at task start before making task changes.
82
+
83
+ - Create and switch to a new `<agent-name>/<branch-name>` branch from freshly
84
+ fetched `origin/main` only when no working branch exists or the current branch is
85
+ `main` or `development`. Use the agent's recognizable lowercase name and a
86
+ descriptive
87
+ branch name, or the exact branch name supplied by the user.
88
+ - On every other branch, keep the current branch and rebase it onto freshly
89
+ fetched `origin/main` before starting task changes. Preserve its existing
90
+ commits and build the new task's commits on top of that work. Reuse this
91
+ branch for subsequent tasks, including when the working tree is clean or
92
+ the new task differs from the previous one.
93
+
94
+ Preserve uncommitted changes when preparing the rebase and restore any changes
95
+ that were temporarily set aside. Do not reset, replace, squash, or discard the
96
+ current branch's work merely to start a new task. Honor explicit user
97
+ working-branch instructions. Read-only investigation and planning do not
98
+ require creating a branch.
99
+
100
+ Fetch again before every source-branch push and rebase when the branch does
101
+ not already contain the latest `origin/main`.
102
+
103
+ Follow the repository's remaining Git, validation, and authorization rules.
104
+ Branch creation does not authorize pushing, merging, or deleting branches.
105
+ Never delete local or remote `main`, and never force-push to remote `main`.
106
+
107
+ ## Existing repository isolation contract
108
+
109
+ Non-negotiable repository isolation rule: Every repository must run its Husky
110
+ hooks and tests using only files, code, fixtures, dependencies, and services
111
+ contained within that repository. Tests and Husky scripts must not import,
112
+ require, read, execute, or otherwise depend on sibling repositories or paths
113
+ outside the repository root. app-e2e-tests is the only exception because
114
+ cross-repository end-to-end testing is its explicit responsibility.
115
+
116
+ Also apply [$carecard-workspace-standards](../carecard-workspace-standards/SKILL.md)
117
+ for the mandatory TDD and code organization rules.
@@ -7,6 +7,9 @@ Non-negotiable root-cause solution rule: Always identify and solve the verified
7
7
 
8
8
  # CareCard Workspace Standards
9
9
 
10
+ First read [carecard-must-do](../carecard-must-do/SKILL.md); it is mandatory for every agent and task.
11
+ Then read the [repository engineering standards](../pkg-validate-coding-standards-and-best-practices/SKILL.md) before following this workflow.
12
+
10
13
  Mandatory companion: load
11
14
  `$pkg-validate-coding-standards-and-best-practices` before this skill for every
12
15
  task in this repository.
@@ -53,7 +56,7 @@ Use before modifying, testing, reviewing, or debugging any CareCard workspace re
53
56
  ## When To Use
54
57
 
55
58
  - Use before modifying, testing, reviewing, or debugging any CareCard workspace repository or cross-repository contract.
56
- - Use as the first shared context before selecting narrower repository-specific skills.
59
+ - Use as shared context after `carecard-must-do` and the repository engineering standards, before selecting narrower specialist skills.
57
60
 
58
61
  ## When Not To Use
59
62
 
@@ -172,7 +175,14 @@ config.
172
175
 
173
176
  ## Remote Git Operations Guardrail
174
177
 
175
- Do not run remote Git or GitHub operations unless the current user request explicitly asks for them. This includes `git fetch`, `git pull`, `git push`, `git push --delete`, remote branch cleanup, GitHub API calls, and any `gh pr` command that creates, updates, readies, merges, closes, or cleans up a pull request. Do not infer permission from branch names, validation needs, prior workflow habits, or convenience; ask first when remote state would help but was not requested.
178
+ Fetches needed to establish a fresh `origin/main` at task start and before a
179
+ source-branch push are authorized without a separate approval question. Commits,
180
+ pushes, PR mutations, and branch cleanup require an authorized task; a request
181
+ for local work alone does not authorize publication. An authorized squash merge
182
+ into `main` includes the merged-source cleanup, local `main` update, and
183
+ `development` synchronization below unless the user explicitly says otherwise.
184
+ Never delete local or remote `main`, or force-push to remote `main`, including
185
+ with `--force-with-lease`.
176
186
 
177
187
  ## Commit Continuation Rule
178
188
 
@@ -183,37 +193,40 @@ making a new commit in the affected repository.
183
193
 
184
194
  ## Agent Guidance Git Workflow
185
195
 
186
- When this skill or any repository-owned `.agents` guidance changes, use the
187
- repository's agents-only Git workflow:
188
-
189
- 1. Work from the affected repository root and confirm only intended `.agents`
190
- files changed.
191
- 2. Use `development` as the base branch when `origin/development` exists;
192
- otherwise use the repository's default base branch, usually `main`.
193
- 3. Create or update `feature/codex` from the updated remote base branch and
194
- commit all the changed `.agents` guidance files there.
195
- 4. Push `feature/codex`, create or reuse a pull request into the base branch,
196
- and mark the pull request ready for review with `gh pr ready <number>`.
197
- 5. Squash-merge with administrator privileges and delete the remote branch:
198
-
199
- ```sh
200
- gh pr merge <number> --squash --admin --delete-branch
201
- ```
202
-
203
- 6. After merge, update the local base branch and remove the local feature
204
- branch:
205
-
206
- ```sh
207
- git fetch origin <base> --prune
208
- git switch <base>
209
- git pull --ff-only origin <base>
210
- git branch -d feature/codex
211
- git ls-remote --heads origin feature/codex
212
- ```
213
-
214
- Do not commit or push `.agents` guidance changes directly from `development`
215
- or `main`. Do not stage unrelated files, generated output, dependency folders,
216
- build artifacts, logs, or `.DS_Store`.
196
+ Reuse the current working branch for every follow-up request, even when the
197
+ subject changes or the working tree is clean. Create a branch only when no
198
+ working branch exists or the checkout is on `main` or `development`. Otherwise,
199
+ fetch remote `main` HEAD and rebase the same working branch onto that fetched
200
+ commit, preserving its commits and uncommitted work.
201
+
202
+ Work from the owning repository root and stage only intended guidance changes.
203
+ Fetch fresh `origin/main` at task start. Create `<agent-name>/<branch-name>`
204
+ from it only when no working branch exists or the current branch is `main` or
205
+ `development`. Otherwise keep
206
+ and rebase the current branch onto it, preserving existing commits and
207
+ uncommitted changes. Build subsequent task commits on that same branch, even
208
+ for a different task or a clean working tree. Honor explicit user
209
+ working-branch instructions.
210
+
211
+ Fetch again before every source-branch push and rebase only when the branch
212
+ does not already contain the latest `origin/main`. Required fetches need no
213
+ separate approval; commits, pushes, PR mutations, and cleanup require an
214
+ authorized task. A local guidance edit does not authorize publishing it.
215
+
216
+ For an authorized merge, create or reuse the PR into `main`, run applicable
217
+ validation, and squash-merge; administrator privileges may be used without
218
+ GitHub reviews. Verify the merge and delete its source branch remotely and
219
+ locally after checking for newer unmerged work. Then fast-forward local `main`
220
+ and replace local and remote branches named exactly `development` with the
221
+ latest remote `main` commit, using an explicit observed-commit
222
+ `--force-with-lease` remotely. Create a missing development counterpart when
223
+ either existed; leave repositories with neither unchanged. If development was
224
+ the merged source, recreate it from the new main. Verify commit parity and
225
+ cleanup; preserve dirty worktrees and report conflicts or rejected leases.
226
+
227
+ Never delete local or remote `main` or force-push to remote `main`, including
228
+ with `--force-with-lease`. Guard exact destination refs before deleting or
229
+ forcing any branch. Do not amend commits or stage unrelated files.
217
230
 
218
231
  ## Shared Packages And API Contracts
219
232
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: github-pr-create-update
3
- description: 'Use only when the user explicitly asks for remote Git or GitHub PR work: pushing a branch, creating or updating a PR, or marking a PR ready from the current repository branch into development or main.'
3
+ description: 'Use when asked to push, create, update, or ready a GitHub pull request. Default PRs to main. Create a branch from fresh origin/main only without a working branch or from main or development; otherwise preserve and rebase the current branch for subsequent tasks. Fetch again before source pushes and preserve main from deletion or force pushes.'
4
4
  ---
5
5
 
6
6
  Non-negotiable root-cause solution rule: Always identify and solve the verified root cause, use the stronger solution, and deliver a correct, durable, production-quality result. Never treat a temporary workaround, resource increase, retry, suppression, bypass, or symptom-only patch as completion. Validate the root-cause fix against the real failing workflow and prove the end state.
@@ -17,172 +17,145 @@ Non-negotiable error and warning rule: Never suppress, silence, hide, downgrade,
17
17
 
18
18
  Non-negotiable code organization rule: Functions with the same or equivalent behavior must use the same or clearly corresponding descriptive names across CareCard repositories, and equivalent functionality must live in files with the same names within each repository's established architecture. No backward compatibility names, aliases, or duplicate locations are allowed.
19
19
 
20
- ## Purpose
21
-
22
- After the user explicitly asks for remote Git or GitHub PR work, create,
23
- update, verify, push, and mark ready a GitHub pull request from the current
24
- repository branch into `development`, or into `main` when `development` is
25
- absent.
26
-
27
- ## When To Use
28
-
29
- - Use only when the user explicitly asks to create, update, push for, or mark
30
- ready a GitHub pull request from the current repository branch.
31
-
32
- ## When Not To Use
33
-
34
- - Do not use for merging or deleting an already-approved pull request; use the
35
- merge cleanup skill.
36
- - Do not use for ordinary local commits that do not involve GitHub PR work.
37
-
38
- ## Remote Git Operations Guardrail
39
-
40
- Do not run remote Git or GitHub operations unless the current user request
41
- explicitly asks for them. This includes `git fetch`, `git pull`, `git push`,
42
- `git push --delete`, remote branch cleanup, GitHub API calls, and any `gh pr`
43
- command that creates, updates, readies, merges, closes, or cleans up a pull
44
- request. Do not infer permission from branch names, validation needs, prior
45
- workflow habits, or convenience; ask first when remote state would help but was
46
- not requested.
47
-
48
- ## Scope
49
-
50
- Use this skill from the root of the repository whose current branch contains
51
- the intended PR changes. The repository must have `origin/development` or
52
- `origin/main`, and GitHub CLI must be available and authenticated.
53
-
54
- Default terms:
55
-
56
- - Base branch: `development` when `origin/development` exists; otherwise
57
- `main` when `origin/main` exists.
58
- - Source branch: the current branch unless the user names another branch.
59
-
60
- Do not continue automatically when:
61
-
62
- - The source branch is `development`, `main`, `master`, or detached.
63
- - The working tree has uncommitted changes. Explain that a PR only includes
64
- committed changes and ask the user whether to commit or stash them.
65
- - `gh auth status` fails.
66
- - Neither `origin/development` nor `origin/main` exists.
67
-
68
- ## Workflow
69
-
70
- 1. Capture the source branch and run preflight checks:
71
-
72
- ```sh
73
- branch="$(git branch --show-current)"
74
- test -n "$branch"
75
- test "$branch" != "development"
76
- test "$branch" != "main"
77
- test "$branch" != "master"
78
- git status --short
79
- gh auth status
80
- ```
81
-
82
- 2. Select the pull request base branch. Prefer `development`; use `main` only
83
- when `origin/development` is absent:
84
-
85
- ```sh
86
- remote_base_refs="$(git ls-remote --heads origin development main)"
87
- remote_query_status=$?
88
- if [ "$remote_query_status" -ne 0 ]; then
89
- printf 'Unable to inspect origin base branches (exit %s).\n' "$remote_query_status" >&2
90
- exit "$remote_query_status"
91
- fi
92
- case "$remote_base_refs" in
93
- *"refs/heads/development") base="development" ;;
94
- *"refs/heads/main") base="main" ;;
95
- *)
96
- printf '%s\n' "No origin/development or origin/main branch exists." >&2
97
- exit 1
98
- ;;
99
- esac
100
- git fetch origin "$base" --prune
101
- ```
102
-
103
- 3. Check whether the current branch can merge with the latest base without
104
- changing the worktree:
105
-
106
- ```sh
107
- if git merge-tree --write-tree HEAD "origin/$base" >/tmp/pull-request-create-merge-tree.out
108
- then
109
- merge_conflict_detected=false
110
- else
111
- merge_conflict_detected=true
112
- fi
113
- ```
114
-
115
- 4. If a merge conflict is detected, try rebasing on the latest base:
116
-
117
- ```sh
118
- if [ "$merge_conflict_detected" = true ]; then
119
- if git rebase "origin/$base"; then
120
- git push --force-with-lease -u origin "$branch"
121
- else
122
- git rebase --abort
123
- echo "Rebase conflicted; aborted without pushing."
124
- exit 1
125
- fi
126
- else
127
- git push -u origin "$branch"
128
- fi
129
- ```
130
-
131
- Do not use `--no-verify`; pre-push hooks must run. Do not resolve rebase
132
- conflicts unless the user explicitly asks.
133
-
134
- 5. Verify the remote branch matches local `HEAD`:
135
-
136
- ```sh
137
- local_sha="$(git rev-parse HEAD)"
138
- remote_sha="$(git ls-remote --heads origin "$branch" | awk '{print $1}')"
139
- test "$local_sha" = "$remote_sha"
140
- ```
141
-
142
- 6. Inspect the branch changes before writing the PR title:
143
-
144
- ```sh
145
- git log --reverse --format='%s' "origin/$base..HEAD"
146
- git diff --stat "origin/$base...HEAD"
147
- ```
148
-
149
- 7. Reuse an existing open PR for this exact branch/base pair when present:
150
-
151
- ```sh
152
- pr_number="$(gh pr list \
153
- --head "$branch" \
154
- --base "$base" \
155
- --state open \
156
- --json number \
157
- --jq '.[0].number // empty')"
158
- ```
159
-
160
- 8. If there is no PR, create one against the selected base and capture the new
161
- PR number:
162
-
163
- ```sh
164
- pr_url="$(gh pr create \
165
- --base "$base" \
166
- --head "$branch" \
167
- --title "$title" \
168
- --body "$body")"
169
- pr_number="$(gh pr view "$pr_url" --json number --jq '.number')"
170
- ```
171
-
172
- 9. If a PR exists, mark it ready when it is a draft, then keep the title
173
- descriptive:
174
-
175
- ```sh
176
- is_draft="$(gh pr view "$pr_number" --json isDraft --jq '.isDraft')"
177
- if [ "$is_draft" = "true" ]; then
178
- gh pr ready "$pr_number"
179
- fi
180
- gh pr edit "$pr_number" --title "$title"
181
- ```
182
-
183
- 10. Final response should include the PR URL, selected base branch, whether a
184
- rebase was performed, whether an existing PR was reused or marked ready,
185
- and any validation that could not be run.
20
+ ## Default Git Policy
21
+
22
+ Reuse the current working branch for every follow-up request, even when the
23
+ subject changes or the working tree is clean. Create a branch only when no
24
+ working branch exists or the checkout is on `main` or `development`. Otherwise,
25
+ fetch remote `main` HEAD and rebase the same working branch onto that fetched
26
+ commit, preserving its commits and uncommitted work.
27
+
28
+ Apply these defaults unless the user explicitly specifies otherwise. The
29
+ prohibition on deleting or force-pushing `main` always applies.
30
+
31
+ 1. Use `main` as the PR base and freshly fetched `origin/main` as the source of
32
+ truth. `origin/HEAD`, a stale local `main`, and the presence of `development`
33
+ do not change this default. If remote `main` is missing or cannot be fetched,
34
+ report the blocker instead of selecting another base.
35
+ 2. At task start, fetch `origin/main`. Create `<agent-name>/<branch-name>`
36
+ from that commit only when no working branch exists or the current branch is
37
+ `main` or `development`.
38
+ Otherwise keep and rebase the current branch onto that commit, preserving
39
+ its existing commits and building subsequent task commits on top. Honor an
40
+ explicit working-branch instruction; it changes branch selection, not
41
+ freshness.
42
+ 3. Fetch again before every source-branch push. Rebase when the working branch
43
+ does not already contain the latest `origin/main`; a clean mergeability
44
+ check is not proof that rebasing is unnecessary. If it already contains that
45
+ commit, no rebase is needed. The direct `development` replacement below is a
46
+ ref synchronization, not a source-branch rebase.
47
+ 4. Squash-merge into remote `main` after the applicable validation passes.
48
+ Administrator privileges may be used to merge without GitHub reviews; they
49
+ do not authorize bypassing required checks. Verify the merge, then delete
50
+ the merged source branch remotely and locally.
51
+ 5. Fetch the latest remote `main` after merging and fast-forward local `main`
52
+ to that commit. Preserve divergent local work and report a blocked update
53
+ rather than discarding it.
54
+ 6. Replace branches named exactly `development`, locally and remotely, with
55
+ the latest remote `main` commit. Use an explicit, observed-commit
56
+ `--force-with-lease` for a non-fast-forward remote update. Create a missing
57
+ counterpart when local or remote `development` exists; leave repositories
58
+ with neither unchanged. If `development` was the merged source, recreate
59
+ it from the new `main` after deleting it. Other working branches are not
60
+ development synchronization targets.
61
+ 7. Never delete local or remote `main`, and never force-push to remote `main`,
62
+ including with `--force-with-lease`, a forced refspec, or a mirror push.
63
+ Check the exact destination ref before every deletion or forced update.
64
+
65
+ Fetches needed to establish a fresh `origin/main` at task start and before a
66
+ source-branch push are authorized without a separate approval question. Commits,
67
+ pushes, PR mutations, and branch cleanup require an authorized task; a request
68
+ for local work alone does not authorize publication. An authorized squash merge
69
+ into `main` includes the merged-source cleanup, local `main` update, and
70
+ `development` synchronization below unless the user explicitly says otherwise.
71
+ Never delete local or remote `main`, or force-push to remote `main`, including
72
+ with `--force-with-lease`.
73
+
74
+ ## Prepare The Working Branch
75
+
76
+ Work from the owning repository root. Inspect status, the current branch,
77
+ upstream, and worktrees before changing refs. Preserve unrelated changes and
78
+ existing commits; do not reset a working branch to discard its work. Honor the
79
+ user's explicit working-branch instruction. Create a new
80
+ `<agent-name>/<branch-name>` from fresh `origin/main` only when no working branch
81
+ exists or the current branch is `main` or `development`. Otherwise keep the current
82
+ branch, rebase it
83
+ onto fresh `origin/main`, and build the new task's commits on its existing
84
+ work. A different task or a clean working tree does not require a new branch.
85
+ Do not use `main` or the selected base as a PR source branch. Stop if the source
86
+ branch cannot be resolved or HEAD is detached.
87
+
88
+ Fetch the authoritative ref explicitly:
89
+
90
+ ```sh
91
+ git fetch origin refs/heads/main:refs/remotes/origin/main
92
+ ```
93
+
94
+ For an existing working branch, preserve any uncommitted changes and rebase
95
+ before starting task changes; restore any changes temporarily set aside:
96
+
97
+ ```sh
98
+ git rebase origin/main
99
+ ```
100
+
101
+ Before every source-branch push, including pushes after validation fixes,
102
+ fetch again and rebase when the branch does not already contain the latest
103
+ `origin/main`. If rebasing changes the validated inputs, rerun
104
+ the affected validation. Preserve successful evidence for unchanged inputs.
105
+ If a rebase conflicts, abort only the rebase started by this task and report
106
+ the conflict; do not push or discard work. Preserve any pre-existing Git
107
+ operation and dirty worktree rather than trying to reset through it.
108
+
109
+ Before rebasing a published source branch, record its remote commit and verify
110
+ that its existing work is accounted for locally. Reconcile unincorporated
111
+ remote work before rewriting it. Use a normal push for a new branch or a
112
+ fast-forward update. When a rebase requires rewriting the remote source, use
113
+ an explicit lease tied to the recorded source commit:
114
+
115
+ ```sh
116
+ if [ -z "$source_branch" ] || [ "$source_branch" = main ]; then
117
+ printf '%s\n' 'Refusing to delete or force-update main or an unnamed branch.' >&2
118
+ exit 1
119
+ fi
120
+ git push --set-upstream \
121
+ --force-with-lease="refs/heads/$source_branch:$observed_source_commit" \
122
+ origin "HEAD:refs/heads/$source_branch"
123
+ ```
124
+
125
+ Resolve `source_branch` and `observed_source_commit` from verified repository
126
+ state before using this example. Do not replace a rejected lease with
127
+ `--force` or retry against a new expected commit without inspecting the remote
128
+ change. Keep hooks enabled. Verify that the remote source commit equals the
129
+ local commit after a successful push.
130
+
131
+ ## Create Or Update The Pull Request
132
+
133
+ 1. Confirm GitHub authentication, the intended source branch, and the clean,
134
+ committed changes included in the PR. Load the owning repository skills and
135
+ run their applicable validation. Stage and commit only authorized changes;
136
+ preserve supplied branch names, titles, commit messages, and PR text.
137
+ 2. Prepare and push the source branch using the fresh-main procedure above.
138
+ 3. Find the open PR for that source. Reuse the exact source/base match. If
139
+ automation created the task PR against `development`, retarget that PR to
140
+ `main` and recheck its diff and checks instead of creating a duplicate.
141
+ Honor an explicit user-selected base; do not silently retarget that choice.
142
+ 4. Create a missing PR against `main` when PR creation is authorized. Use a
143
+ file for a multiline body with `gh pr create --body-file` or
144
+ `gh pr edit --body-file`. Do not create an empty PR for a source already
145
+ represented in the base; report the no-op and perform only authorized
146
+ cleanup supported by merge or content-equivalence evidence.
147
+ 5. Mark draft PRs ready in the authorized create/update/ready or merge workflow,
148
+ while preserving an explicit request to keep the PR as a draft. Keep the title factual and preserve exact user-supplied text.
149
+ A create/update-only request ends with the PR; it does not authorize merging.
150
+
151
+ ## Reporting
152
+
153
+ Report the repository, working branch, fetched main commit, whether rebasing
154
+ was needed, validation results, push result, PR URL and state, administrator
155
+ merge use, source cleanup, final checkout, and main/development commit parity.
156
+ Distinguish merged, unchanged, not applicable, and blocked repositories. Give
157
+ the exact failing command and reason for an incomplete step. Do not amend
158
+ commits unless explicitly requested; use additive commits for follow-up work.
186
159
 
187
160
  ## TDD And Validation
188
161
 
@@ -1,5 +1,5 @@
1
1
  interface:
2
- display_name: 'GitHub PR Create Or Update'
3
- short_description: 'Create, update, verify, push, and mark ready a GitHub pull request from the current repository branch into origin/development'
4
- brand_color: '#0F766E'
5
- default_prompt: 'Use $github-pr-create-update when this task matches the skill scope.'
2
+ display_name: 'GitHub PR Create Or Update'
3
+ short_description: 'Create, update, and ready pull requests into main'
4
+ brand_color: '#0F766E'
5
+ default_prompt: 'Use $github-pr-create-update when this task matches the skill scope.'