agentme 0.36.0 → 0.37.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.
- package/.filedist-package.yml +1 -1
- package/.xdrs/agentme/bdrs/index.md +2 -1
- package/.xdrs/agentme/bdrs/operations/{401-epic-feature-story-planning.md → 401-plan-epic-feature-story.md} +2 -2
- package/.xdrs/agentme/bdrs/operations/402-digital-product-roles.md +15 -19
- package/.xdrs/agentme/bdrs/operations/403-product-team-composition.md +3 -0
- package/.xdrs/agentme/bdrs/operations/404-team-roles-and-specialists.md +61 -82
- package/.xdrs/agentme/bdrs/operations/405-digital-product-roles-raci.md +131 -0
- package/.xdrs/agentme/bdrs/principles/002-okr-framework.md +1 -1
- package/.xdrs/agentme/bdrs/principles/003-product-delivery-value-flow.md +3 -2
- package/.xdrs/agentme/edrs/application/101-javascript-project-tooling.md +1 -1
- package/.xdrs/agentme/edrs/application/102-golang-project-tooling.md +1 -1
- package/.xdrs/agentme/edrs/application/103-python-project-tooling.md +1 -1
- package/.xdrs/agentme/edrs/application/127-external-system-adapter-skills.md +2 -0
- package/.xdrs/agentme/edrs/application/skills/{251-azure-devops-connector → azure-devops-connector}/SKILL.md +6 -9
- package/.xdrs/agentme/edrs/application/skills/{251-azure-devops-connector → azure-devops-connector}/SKILL.test.md +1 -1
- package/.xdrs/agentme/edrs/application/skills/{051-create-golang-project → create-golang-project}/SKILL.md +1 -1
- package/.xdrs/agentme/edrs/application/skills/create-golang-project/SKILL.test.md +72 -0
- package/.xdrs/agentme/edrs/application/skills/{050-create-javascript-project → create-javascript-project}/SKILL.md +23 -24
- package/.xdrs/agentme/edrs/application/skills/create-javascript-project/SKILL.test.md +72 -0
- package/.xdrs/agentme/edrs/application/skills/{052-create-python-project → create-python-project}/SKILL.md +1 -1
- package/.xdrs/agentme/edrs/application/skills/create-python-project/SKILL.test.md +79 -0
- package/.xdrs/agentme/edrs/application/skills/{250-github-connector → github-connector}/SKILL.md +5 -8
- package/.xdrs/agentme/edrs/application/skills/{250-github-connector → github-connector}/SKILL.test.md +1 -1
- package/.xdrs/agentme/edrs/application/skills/{200-run-skill-tests → run-skill-tests}/SKILL.md +4 -4
- package/.xdrs/agentme/edrs/application/skills/{200-run-skill-tests → run-skill-tests}/SKILL.test.md +7 -7
- package/.xdrs/agentme/edrs/application/skills/{010-select-relevant-xdrs → select-relevant-xdrs}/SKILL.md +1 -1
- package/.xdrs/agentme/edrs/application/skills/select-relevant-xdrs/SKILL.test.md +73 -0
- package/.xdrs/agentme/edrs/governance/502-contributing-guide-requirements.md +1 -1
- package/.xdrs/agentme/edrs/index.md +16 -11
- package/.xdrs/agentme/edrs/operations/402-dora-metrics-framework.md +82 -0
- package/.xdrs/agentme/edrs/operations/403-dora-deployment-frequency.md +37 -0
- package/.xdrs/agentme/edrs/operations/404-dora-lead-time-for-changes.md +41 -0
- package/.xdrs/agentme/edrs/operations/405-dora-change-failure-rate.md +42 -0
- package/.xdrs/agentme/edrs/operations/406-dora-time-to-restore-service.md +42 -0
- package/.xdrs/agentme/edrs/platform/301-monorepo-structure.md +1 -1
- package/.xdrs/agentme/edrs/platform/skills/{053-monorepo-setup → monorepo-setup}/SKILL.md +15 -15
- package/.xdrs/agentme/edrs/platform/skills/monorepo-setup/SKILL.test.md +80 -0
- package/.xdrs/agentme/edrs/principles/012-continuous-xdr-enrichment.md +1 -1
- package/.xdrs/agentme/edrs/principles/017-skill-testing.md +4 -4
- package/.xdrs/agentme/edrs/principles/articles/001-continuous-xdr-improvement.md +1 -1
- package/.xdrs/agentme/edrs/principles/skills/{150-refine-plan-mode → refine-plan-mode}/SKILL.md +2 -8
- package/.xdrs/agentme/edrs/principles/skills/{150-refine-plan-mode → refine-plan-mode}/SKILL.test.md +2 -2
- package/.xdrs/agentme/edrs/principles/skills/{151-refine-user-story → refine-user-story}/SKILL.md +4 -11
- package/.xdrs/agentme/edrs/principles/skills/{151-refine-user-story → refine-user-story}/SKILL.test.md +17 -17
- package/.xdrs/agentme/edrs/principles/skills/{400-pr-owner-assistant → resolve-pr-comments}/Makefile +1 -1
- package/.xdrs/agentme/edrs/principles/skills/resolve-pr-comments/SKILL.md +662 -0
- package/.xdrs/agentme/edrs/principles/skills/resolve-pr-comments/SKILL.test.md +165 -0
- package/.xdrs/agentme/edrs/principles/skills/{400-pr-owner-assistant → resolve-pr-comments}/scripts/post-replies-azure-devops.js +3 -3
- package/.xdrs/agentme/edrs/principles/skills/{400-pr-owner-assistant → resolve-pr-comments}/scripts/post-replies-azure-devops.test.js +5 -5
- package/.xdrs/agentme/edrs/principles/skills/{400-pr-owner-assistant → resolve-pr-comments}/scripts/post-replies-github.js +3 -3
- package/.xdrs/agentme/edrs/principles/skills/{400-pr-owner-assistant → resolve-pr-comments}/scripts/post-replies-github.test.js +4 -4
- package/.xdrs/agentme/edrs/principles/skills/{400-pr-owner-assistant → resolve-pr-comments}/scripts/update-section.js +84 -3
- package/.xdrs/agentme/edrs/principles/skills/{400-pr-owner-assistant → resolve-pr-comments}/scripts/update-section.test.js +108 -1
- package/package.json +2 -2
- package/.xdrs/agentme/edrs/principles/skills/400-pr-owner-assistant/SKILL.md +0 -633
- package/.xdrs/agentme/edrs/principles/skills/400-pr-owner-assistant/SKILL.test.md +0 -174
|
@@ -1,174 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
skill: 400-pr-owner-assistant
|
|
3
|
-
skill-version: "2.3.0"
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
## Test Scenarios
|
|
7
|
-
|
|
8
|
-
### Scenario 1: End-to-end GitHub PR review, happy path
|
|
9
|
-
|
|
10
|
-
**Trigger / Input**
|
|
11
|
-
|
|
12
|
-
"Let's review this PR: https://github.com/acme/widgets/pull/482" (run from a clean, up to
|
|
13
|
-
date local clone of `acme/widgets`, which has 2 open comments).
|
|
14
|
-
|
|
15
|
-
**Expected Behaviour**
|
|
16
|
-
|
|
17
|
-
The skill: (1) parses the URL host as `github.com` and activates `github-connector`; (2)
|
|
18
|
-
Phase 1 fetches PR #482 metadata and every comment via the connector's read commands; (3)
|
|
19
|
-
Phase 2 confirms the local repo matches `acme/widgets` and offers to check out the PR
|
|
20
|
-
branch; (4) Phase 3 creates `.tmp/review-pr-482.md` with one templated section per open
|
|
21
|
-
comment, fully populated before any question is asked -- writing the summary automatically
|
|
22
|
-
without asking for confirmation, rendering each section's `source` field as a clickable
|
|
23
|
-
markdown link to the matching file in the local checkout (never a provider URL),
|
|
24
|
-
populating `source-lines` with the commented line(s) plus padding read from the checked-out
|
|
25
|
-
file, `diff-hunk-raw` verbatim from the connector, `author-raw` verbatim from the connector,
|
|
26
|
-
`comment-url` verbatim from the connector, `possible-user-intention` (an under-20-word,
|
|
27
|
-
silently generated read of the author's likely concern) alongside the existing `type`, and
|
|
28
|
-
`possible-follow-ups` (2-4 candidate next actions), and recording the verbatim comment text
|
|
29
|
-
and any existing replies under `comment-raw`/`replies-raw`; (5) Phase 4 opens noting every
|
|
30
|
-
drafted item is only ever sent later, during Phase 5 -- never mid-walkthrough -- then walks
|
|
31
|
-
each of the 2 comments one at a time, rendering its full focus card (comment, code,
|
|
32
|
-
criticality/type/possible-user-intention, possible-follow-ups) before asking the human to
|
|
33
|
-
choose an action for that single comment; (6) for each, drafts the reply/fix text and shows
|
|
34
|
-
the mandatory confirmation titled with the comment's short title, author, and exact reply
|
|
35
|
-
text, persisting it as `pending-reply: drafted` once confirmed -- nothing is sent at this
|
|
36
|
-
point; (7) Phase 5 gathers both now-drafted comments, renders a consolidated preview table
|
|
37
|
-
(id, title, action, resolve-on-apply) followed by each row's exact draft text, runs the
|
|
38
|
-
pre-flight commit/push gate (finding the worktree and remote already clean, so it proceeds
|
|
39
|
-
silently), then applies both together via a single apply-all batch confirmation -- resolving
|
|
40
|
-
comment 1's thread as requested -- and reports the final summary by action taken and send
|
|
41
|
-
status.
|
|
42
|
-
|
|
43
|
-
**Simulated Human Responses**
|
|
44
|
-
1. "Yes, check out the PR branch."
|
|
45
|
-
2. "For comment 1: confirm criticality, action = reply. Yes, resolve the thread once
|
|
46
|
-
applied." (accepts the drafted text unedited)
|
|
47
|
-
3. "For comment 2: confirm criticality, action = fix. Use this reply text instead:
|
|
48
|
-
'Renamed per your suggestion, thanks!'" (replaces the drafted text with free text)
|
|
49
|
-
4. (Phase 5) "Apply all now."
|
|
50
|
-
|
|
51
|
-
**Assertions**
|
|
52
|
-
|
|
53
|
-
- [ ] Skill activates `github-connector` because the URL host is `github.com`.
|
|
54
|
-
- [ ] Skill does not skip Phase 2 workspace validation before creating the tracking file.
|
|
55
|
-
- [ ] Skill creates `.tmp/review-pr-482.md` with a templated section per fetched open
|
|
56
|
-
comment only -- already-resolved comments are never recorded.
|
|
57
|
-
- [ ] Skill fully populates every comment's section -- including `possible-follow-ups` and
|
|
58
|
-
`diff-hunk-raw` -- before Phase 4 asks its first triage question.
|
|
59
|
-
- [ ] Skill writes the tracking file's PR summary automatically, without asking the human to
|
|
60
|
-
confirm or edit it first.
|
|
61
|
-
- [ ] Skill renders each section's `source` field as a markdown link to the matching local
|
|
62
|
-
file, relative to the tracking file's own location (file:line-range text for
|
|
63
|
-
file-scoped comments, `(PR conversation)` text with no link otherwise) -- never a link
|
|
64
|
-
to the provider's website.
|
|
65
|
-
- [ ] Skill asks about exactly one comment at a time in Phase 4, never batching multiple
|
|
66
|
-
comments' triage questions into a single ask.
|
|
67
|
-
- [ ] Skill shows the mandatory confirmation -- titled with the comment's short title,
|
|
68
|
-
author, and exact reply text -- before persisting each draft in Phase 4, and neither
|
|
69
|
-
applies nor posts anything during Phase 4.
|
|
70
|
-
- [ ] Skill persists both comments as `pending-reply: drafted` at the end of Phase 4, with
|
|
71
|
-
neither one sent to the provider yet.
|
|
72
|
-
- [ ] Skill's Phase 5 renders a consolidated preview table (one row per drafted comment:
|
|
73
|
-
id, title, action, resolve-on-apply) followed by each row's exact draft text shown
|
|
74
|
-
below the table.
|
|
75
|
-
- [ ] Skill's Phase 5 runs the pre-flight commit/push gate and, finding the worktree and
|
|
76
|
-
remote clean, proceeds straight to applying without asking anything about git.
|
|
77
|
-
- [ ] Skill applies both comments' drafts together in a single apply-all batch confirmation
|
|
78
|
-
in Phase 5, resolving comment 1's thread as requested.
|
|
79
|
-
- [ ] Skill suffixes comment 1's reply -- accepted unedited -- with
|
|
80
|
-
`(pr-owner-assistant skill - using defaults)` before posting it.
|
|
81
|
-
- [ ] Skill suffixes comment 2's reply -- replaced with human-supplied free text -- with
|
|
82
|
-
`(pr-owner-assistant skill - guided)` before posting it.
|
|
83
|
-
- [ ] Skill records the section's original comment text under `comment-raw` and any existing
|
|
84
|
-
thread replies under `replies-raw`, never under the old `comment`/`replies` names.
|
|
85
|
-
- [ ] Skill populates `source-lines` with the commented line(s) padded +-3 lines, each line
|
|
86
|
-
prefixed with its absolute line number.
|
|
87
|
-
- [ ] Skill populates `author-raw` and `comment-url` verbatim from the connector.
|
|
88
|
-
- [ ] Skill populates `possible-user-intention` with an under-20-word inference silently,
|
|
89
|
-
with no dedicated confirmation prompt of its own.
|
|
90
|
-
|
|
91
|
-
### Scenario 2: Suggested-fix detection drives accept/evolve/decline framing
|
|
92
|
-
|
|
93
|
-
**Trigger / Input**
|
|
94
|
-
|
|
95
|
-
Phase 3 populates 3 comments, each containing a fenced `suggestion` block in `comment-raw`:
|
|
96
|
-
comment 1 proposes a correct rename with no side effects; comment 2 proposes a fix that is
|
|
97
|
-
right in direction but leaves an edge case unhandled; comment 3 proposes a change that would
|
|
98
|
-
silently break an unrelated caller.
|
|
99
|
-
|
|
100
|
-
**Expected Behaviour**
|
|
101
|
-
|
|
102
|
-
Phase 3 extracts each `suggested-fix` verbatim from its fenced block and records a
|
|
103
|
-
`suggested-fix-assessment` with rationale: `accept-as-is` for comment 1, `evolve-with-changes`
|
|
104
|
-
for comment 2, `not-recommended` for comment 3. In Phase 4, each focus card renders the
|
|
105
|
-
`suggested-fix`/`suggested-fix-assessment` pair right after `diff-hunk-raw`/`source-lines`.
|
|
106
|
-
For comment 1, the human applies the suggestion verbatim as a `fix` with no inline code
|
|
107
|
-
comment (the rename is self-evident, no rationale needed). For comment 2, the human applies
|
|
108
|
-
an evolved fix that also handles the edge case, and the skill adds a short inline code
|
|
109
|
-
comment at the changed lines explaining why the fix goes beyond the original suggestion.
|
|
110
|
-
For comment 3, the human declines with `wontfix`, and the skill's drafted rationale
|
|
111
|
-
explains why the suggestion isn't safe to apply, plus a short inline code comment at the
|
|
112
|
-
affected lines pointing back to that rationale.
|
|
113
|
-
|
|
114
|
-
**Simulated Human Responses**
|
|
115
|
-
1. "For comment 1: action = fix, apply the suggestion as-is."
|
|
116
|
-
2. "For comment 2: action = fix, but also handle the empty-input case the suggestion
|
|
117
|
-
missed."
|
|
118
|
-
3. "For comment 3: action = wontfix -- that suggestion would break the other caller of this
|
|
119
|
-
function."
|
|
120
|
-
|
|
121
|
-
**Assertions**
|
|
122
|
-
|
|
123
|
-
- [ ] Skill records a `suggested-fix` verbatim from each comment's fenced `suggestion`
|
|
124
|
-
block, independent of which connector fetched it.
|
|
125
|
-
- [ ] Skill records `suggested-fix-assessment: accept-as-is` for comment 1,
|
|
126
|
-
`evolve-with-changes` for comment 2, and `not-recommended` for comment 3, each with a
|
|
127
|
-
short rationale.
|
|
128
|
-
- [ ] Skill renders `suggested-fix` and `suggested-fix-assessment` in the focus card right
|
|
129
|
-
after `diff-hunk-raw`/`source-lines`, for all 3 comments.
|
|
130
|
-
- [ ] Skill applies comment 1's fix verbatim with no added inline code comment, since the
|
|
131
|
-
rationale is self-evident.
|
|
132
|
-
- [ ] Skill adds a short inline code comment at comment 2's changed lines explaining why the
|
|
133
|
-
fix evolves beyond the original suggestion.
|
|
134
|
-
- [ ] Skill adds a short inline code comment at comment 3's affected lines explaining why
|
|
135
|
-
the suggested fix was declined, matching the `wontfix` rationale.
|
|
136
|
-
|
|
137
|
-
### Scenario 3: Phase 5 preview table, apply-all batch, and the commit/push gate
|
|
138
|
-
|
|
139
|
-
**Trigger / Input**
|
|
140
|
-
|
|
141
|
-
Phase 5 begins with 3 comments at `pending-reply: drafted` (2 `reply`, 1 `fix`). The local
|
|
142
|
-
worktree has one uncommitted change and 2 local commits not yet on the remote tracking
|
|
143
|
-
branch. The human chooses apply-all; the connector reports a transient failure applying the
|
|
144
|
-
2nd item only.
|
|
145
|
-
|
|
146
|
-
**Expected Behaviour**
|
|
147
|
-
|
|
148
|
-
Phase 5 renders the consolidated preview table (3 rows) with each row's exact draft text
|
|
149
|
-
shown below it, then runs the pre-flight git check. Finding both the uncommitted change and
|
|
150
|
-
the 2 unpushed commits, it shows a reminder that other participants won't see this code
|
|
151
|
-
until pushed, advises the human to add/commit/push manually -- never running any git command
|
|
152
|
-
itself -- and waits for explicit confirmation before applying anything. Once confirmed, it
|
|
153
|
-
applies item 1 successfully, hits the transient failure on item 2 (reporting it plainly
|
|
154
|
-
without losing item 1's already-applied state), and continues on to apply item 3
|
|
155
|
-
successfully.
|
|
156
|
-
|
|
157
|
-
**Simulated Human Responses**
|
|
158
|
-
1. "Apply all now."
|
|
159
|
-
2. "I've committed and pushed -- go ahead."
|
|
160
|
-
|
|
161
|
-
**Assertions**
|
|
162
|
-
|
|
163
|
-
- [ ] Skill renders all 3 items in the preview table with exact draft text shown below it,
|
|
164
|
-
before asking how to proceed.
|
|
165
|
-
- [ ] Skill's pre-flight git check detects both the uncommitted change and the 2 unpushed
|
|
166
|
-
local commits, and shows a reminder plus advice to add/commit/push manually.
|
|
167
|
-
- [ ] Skill never runs `git add`, `git commit`, or `git push` itself, regardless of what the
|
|
168
|
-
check finds.
|
|
169
|
-
- [ ] Skill waits for explicit human confirmation after the reminder before applying any
|
|
170
|
-
item.
|
|
171
|
-
- [ ] Skill's mid-batch failure on item 2 does not discard or reapply item 1's
|
|
172
|
-
already-applied result.
|
|
173
|
-
- [ ] Skill continues on to apply item 3 after item 2's failure, and reports a per-item
|
|
174
|
-
outcome (applied, applied, failed) at the end.
|