Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
30 changes: 20 additions & 10 deletions plugins/repo-dreamer/skills/repository-skill-forge/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,10 +55,13 @@ ephemeral execution state, not cross-run Forge memory.
Use the exact fixed rolling window for every run. Do not derive it from an
issue, a previous run, or the last published PR.

Find every open and closed pull request with the `skills-forge` label. Request
at least PR number, URL, state, draft status, merged timestamp, updated
timestamp, and complete body. Create the label when supported; otherwise
require it to be pre-provisioned. Never publish an unlabeled Forge PR.
Search open and closed pull requests for the literal
`repository-skill-forge-proposal:v1` marker, regardless of labels. Request at
least PR number, URL, state, draft status, merged timestamp, updated timestamp,
and complete body for every match. Also use general PR search when evaluating a
candidate to find semantically related work that predates the marker or was not
created by Forge. Labels are optional organizational metadata and are never an
identity, discovery, deduplication, or blocking mechanism.

Write the returned PR array to `$RUN_DIR/forge-prs.json`, then build the catalog:

Expand Down Expand Up @@ -193,7 +196,10 @@ python3 "$SKILL_DIR/scripts/extraction-controller.py" assert-terminal \
```

A run is blocked only when this command reports the controller-recorded
blocker. Never describe incomplete `running` work as blocked.
blocker. Never describe incomplete `running` work as blocked. Once the
controller is initialized, do not stop for label, target-identity, or
publication-tool checks while its status remains `running`; continue invoking
`next` and recording every action outcome until extraction is terminal.

### 3. Handle irreducible query failures

Expand Down Expand Up @@ -301,6 +307,9 @@ TARGET_SHA="$(

If no proposal is selected, missing target identity must not block the run.
If selected and target identity cannot be resolved, block before publication.
After publication, apply `skills-forge` when the label exists and the available
GitHub tools support it. Label lookup, creation, or application failure is
non-blocking because the persistent marker is the authoritative Forge identity.

The PR body includes the marker, proposal identity, candidate IDs, confidence,
fixed evidence window, target SHA, validation, review findings, and the
Expand All @@ -320,11 +329,12 @@ than one PR create/update, and a persistent valid marker in every published
Forge PR.

Fail explicitly on undisclosed omissions, malformed PR metadata, leakage,
unsafe proposals, missing label/write tools, or blocked publication. Never
fabricate evidence. Large repositories still use the full fixed window by
default; long asynchronous runtime alone is not a reason to sample. Introduce
deterministic sampling only after observing a concrete tool-call, output,
context, or automation limit.
unsafe proposals, missing required publication tools, or blocked publication.
Label tools are optional and must never interrupt extraction, publication, or a
no-proposal result. Never fabricate evidence. Large repositories still use the
full fixed window by default; long asynchronous runtime alone is not a reason
to sample. Introduce deterministic sampling only after observing a concrete
tool-call, output, context, or automation limit.

## Assets

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,6 @@ Reject or revise the proposal when it:
- requires `gh` or independently authenticated GitHub access in Dreaming;
- claims multi-user evidence when trusted user identity is unavailable.
- assumes more than one proposal PR can be created or updated in a run;
- omits the required `skills-forge` label;
- omits, duplicates, corrupts, or mismatches the Forge proposal marker;
- describes partial extraction as complete or omits coverage and omission
disclosure from a proposal published after a partial run.
Expand Down