@plainconceptsplatform/workflows 0.6.1 → 0.16.2
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/README.md +107 -88
- package/dist/catalog-installation.d.ts +39 -2
- package/dist/catalog-installation.js +172 -109
- package/dist/index.js +128 -73
- package/dist/package-baseline.d.ts +25 -0
- package/dist/package-baseline.js +138 -0
- package/dist/route-processing.d.ts +0 -2
- package/dist/route-processing.js +22 -91
- package/dist/stack-defaults.js +18 -12
- package/dist/tui.js +27 -43
- package/dist/worker-env.d.ts +46 -0
- package/dist/worker-env.js +179 -0
- package/dist/workflow-catalog.d.ts +4 -2
- package/dist/workflow-catalog.js +5 -3
- package/loops/actions/add-issue-labels/action.yml +20 -0
- package/loops/actions/audit-close/action.yml +180 -128
- package/loops/actions/classify-route/classify-route.sh +8 -2
- package/loops/actions/housekeeping/action.yml +251 -0
- package/loops/actions/merge-agent-pr/action.yml +13 -0
- package/loops/actions/report-workflow-errors/action.yml +414 -0
- package/loops/actions/validate-merge-gate-output/validate-merge-gate-output.sh +13 -1
- package/loops/actions/validate-triage-output/action.yml +1 -1
- package/loops/actions/validate-triage-output/validate-triage-output.sh +9 -5
- package/loops/actions/verify-composite-actions/verify-composite-actions.sh +53 -0
- package/loops/actions/verify-route-matrix/verify-route-matrix.sh +911 -170
- package/loops/templates/agentics/agentics-error-report.yml +98 -0
- package/loops/templates/opencode/opencode.ci.json +1 -1
- package/loops/workflows/agent-apply-review.md +438 -469
- package/loops/workflows/agent-audit.md +200 -213
- package/loops/workflows/agent-implement.md +591 -640
- package/loops/workflows/agent-merge-gate.md +826 -844
- package/loops/workflows/agent-refine.md +590 -633
- package/loops/workflows/agent-release.md +244 -258
- package/loops/workflows/agent-triage.md +476 -447
- package/loops/workflows/authorize-bot-work.yml +26 -6
- package/loops/workflows/shared/platform-defaults.md +18 -1
- package/loops/workflows/work-router.yml +1185 -1038
- package/package.json +9 -8
- package/dist/action-validation.test.d.ts +0 -1
- package/dist/action-validation.test.js +0 -87
- package/dist/catalog-installation.test.d.ts +0 -1
- package/dist/catalog-installation.test.js +0 -485
- package/dist/catalog-listing.test.d.ts +0 -1
- package/dist/catalog-listing.test.js +0 -150
- package/dist/index.test.d.ts +0 -1
- package/dist/index.test.js +0 -273
- package/dist/repository-inspection.test.d.ts +0 -1
- package/dist/repository-inspection.test.js +0 -77
- package/dist/route-processing.test.d.ts +0 -1
- package/dist/route-processing.test.js +0 -283
- package/dist/stack-defaults.test.d.ts +0 -1
- package/dist/stack-defaults.test.js +0 -266
- package/dist/tui.test.d.ts +0 -1
- package/dist/tui.test.js +0 -249
- package/dist/workflow-catalog.test.d.ts +0 -1
- package/dist/workflow-catalog.test.js +0 -29
- package/loops/actions/stale-recovery/action.yml +0 -288
- package/loops/actions/update-changelog/action.yml +0 -113
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
# Managed by @plainconceptsplatform/workflows. Source: loops/templates/agentics/agentics-error-report.yml. Update with `workflows update --force`; consumer edits may be overwritten.
|
|
2
|
+
name: "Agentics: Error Report"
|
|
3
|
+
|
|
4
|
+
# Once a day, look at how the workflows this package ships behaved in this repository and file
|
|
5
|
+
# what broke upstream, so the package gets fixed instead of every repository working around the
|
|
6
|
+
# same bug on its own.
|
|
7
|
+
#
|
|
8
|
+
# THIS REPOSITORY IS PRIVATE AND THE REPORT LEAVES IT. That is the whole design constraint. The
|
|
9
|
+
# job is deterministic — no model runs, because a model summarising a log would paraphrase
|
|
10
|
+
# whatever the log happened to contain — and it sends only:
|
|
11
|
+
#
|
|
12
|
+
# * the names this package gives its own workflows, jobs and steps
|
|
13
|
+
# * a conclusion, a runner label and a count
|
|
14
|
+
# * the id of a matched entry from a fixed catalogue of failure shapes
|
|
15
|
+
#
|
|
16
|
+
# It never sends a log line, a branch name, an issue title, a file path, a commit, a URL or a
|
|
17
|
+
# number that could be looked up. Before anything is filed, the finished text is run through a
|
|
18
|
+
# leak scanner; if the scanner matches, the report is withheld and the run goes red rather than
|
|
19
|
+
# filing it. See loops/actions/report-workflow-errors/action.yml.
|
|
20
|
+
#
|
|
21
|
+
# To turn it off: delete this file, or clear UPSTREAM_NAME below to compute the report into the
|
|
22
|
+
# job summary and file nothing.
|
|
23
|
+
|
|
24
|
+
run-name: "Error report: last ${{ github.event.inputs.lookback-hours || '24' }}h"
|
|
25
|
+
|
|
26
|
+
on:
|
|
27
|
+
schedule:
|
|
28
|
+
# One slot for every repository, unlike the audit cron. This job runs on a GitHub-hosted
|
|
29
|
+
# runner and never touches the shared agent fleet, and separate repositories do not queue
|
|
30
|
+
# against one another on hosted runners, so there is nothing to stagger.
|
|
31
|
+
- cron: "11 7 * * *"
|
|
32
|
+
workflow_dispatch:
|
|
33
|
+
inputs:
|
|
34
|
+
lookback-hours:
|
|
35
|
+
description: "How far back to look"
|
|
36
|
+
required: false
|
|
37
|
+
type: string
|
|
38
|
+
default: '24'
|
|
39
|
+
dry-run:
|
|
40
|
+
description: "Compute the report and file nothing"
|
|
41
|
+
required: false
|
|
42
|
+
type: boolean
|
|
43
|
+
default: false
|
|
44
|
+
|
|
45
|
+
permissions:
|
|
46
|
+
contents: read
|
|
47
|
+
|
|
48
|
+
env:
|
|
49
|
+
# Where the report goes. Owner and name are separate because the App token has to be scoped
|
|
50
|
+
# to the one repository, and GitHub expressions have no split(): there is no way to take the
|
|
51
|
+
# halves of "owner/name" apart inside a workflow. Clear UPSTREAM_NAME to keep the report
|
|
52
|
+
# local to the job summary.
|
|
53
|
+
UPSTREAM_OWNER: "PlainConceptsPlatform"
|
|
54
|
+
UPSTREAM_NAME: "Agentic-Workflows"
|
|
55
|
+
# How far back a scheduled run looks. Matches the cron so nothing is counted twice.
|
|
56
|
+
LOOKBACK_HOURS: "24"
|
|
57
|
+
|
|
58
|
+
jobs:
|
|
59
|
+
report:
|
|
60
|
+
# Fork of a consumer: the fleet is not theirs and neither is the report.
|
|
61
|
+
if: "!github.event.repository.fork"
|
|
62
|
+
runs-on: ubuntu-latest
|
|
63
|
+
timeout-minutes: 20
|
|
64
|
+
concurrency:
|
|
65
|
+
group: agentics-error-report
|
|
66
|
+
cancel-in-progress: false
|
|
67
|
+
permissions:
|
|
68
|
+
# Reading this repository's own runs, jobs and logs. Read-only throughout: the job files
|
|
69
|
+
# upstream with a separate token and writes nothing here.
|
|
70
|
+
contents: read
|
|
71
|
+
actions: read
|
|
72
|
+
steps:
|
|
73
|
+
- name: Checkout workflow actions
|
|
74
|
+
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
75
|
+
with:
|
|
76
|
+
persist-credentials: false
|
|
77
|
+
|
|
78
|
+
# A token for the upstream repository only. The App has to be installed there; where it is
|
|
79
|
+
# not, this step fails, the next one is skipped, and the report still lands in the job
|
|
80
|
+
# summary with a warning rather than a red run.
|
|
81
|
+
- name: Generate an upstream token
|
|
82
|
+
id: upstream-token
|
|
83
|
+
if: env.UPSTREAM_NAME != ''
|
|
84
|
+
continue-on-error: true
|
|
85
|
+
uses: actions/create-github-app-token@bcd2ba49218906704ab6c1aa796996da409d3eb1 # v3.2.0
|
|
86
|
+
with:
|
|
87
|
+
app-id: ${{ secrets.BOT_APP_ID }}
|
|
88
|
+
private-key: ${{ secrets.BOT_PRIVATE_KEY }}
|
|
89
|
+
owner: ${{ env.UPSTREAM_OWNER }}
|
|
90
|
+
repositories: ${{ env.UPSTREAM_NAME }}
|
|
91
|
+
|
|
92
|
+
- uses: ./.github/actions/report-workflow-errors
|
|
93
|
+
with:
|
|
94
|
+
token: ${{ github.token }}
|
|
95
|
+
upstream-token: ${{ steps.upstream-token.outputs.token }}
|
|
96
|
+
upstream-repo: ${{ env.UPSTREAM_OWNER }}/${{ env.UPSTREAM_NAME }}
|
|
97
|
+
lookback-hours: ${{ github.event.inputs.lookback-hours || env.LOOKBACK_HOURS }}
|
|
98
|
+
dry-run: ${{ github.event.inputs.dry-run || 'false' }}
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"ci-workflow-agent": {
|
|
8
8
|
"description": "Executes GitHub Agentic Workflow tasks in CI.",
|
|
9
9
|
"mode": "primary",
|
|
10
|
-
"prompt": "You execute the GitHub Agentic Workflow task in the user prompt. Read AGENTS.md before any non-trivial change. Load only skills the workflow task explicitly names via skill(); when a workflow says load @skill-name, call skill(\"skill-name\"), the @ prefix is just a hint to use the skill tool. Execute only the requested task and required commands. Do not probe or inspect unrelated commands. The GitHub CLI is intentionally unauthenticated: never use `gh` for GitHub reads or writes. Read supplied workflow files first, then use the GitHub MCP tools only when fresh GitHub data is required. Use direct `safeoutputs` commands for GitHub writes. For syntax-only validation of a conventional GitHub Actions YAML file, use Ruby's standard YAML library; do not probe, install, or fall back through PyYAML, js-yaml, actionlint, or Docker. A task is complete only after every required Safe Outputs command succeeds. After the final required Safe Outputs command, stop immediately without further tools, prose, or model turns. Use `mcpscripts` only when the runtime explicitly lists it as available.\n\nOUTPUT DISCIPLINE: Do not narrate. Do not explain what you are about to do before doing it. Do not write prose between tool calls. Call tools silently. The only prose you produce is the final result or a brief error explanation when something fails. Never output sentences like 'Let me check...', 'Now I will...', 'I have enough context...', or 'Next I need to...'. If you are about to call a tool, just call it. If you must think, use the todowrite tool, not prose.\n\nMEMORY: agentmemory is the shared long-term store. Start non-trivial tasks by calling its recall/search tool with the key concepts of the task (component names, error text) and reuse what it returns instead of rediscovering it. Before finishing, store 1-3 concise memories of durable non-obvious learnings: architecture constraints, root causes and their fixes, decisions and their why. Skip trivia the repo already documents. Never store secrets or tokens."
|
|
10
|
+
"prompt": "You execute the GitHub Agentic Workflow task in the user prompt. Read AGENTS.md before any non-trivial change. Load only skills the workflow task explicitly names via skill(); when a workflow says load @skill-name, call skill(\"skill-name\"), the @ prefix is just a hint to use the skill tool. Execute only the requested task and required commands. Do not probe or inspect unrelated commands. The GitHub CLI is intentionally unauthenticated: never use `gh` for GitHub reads or writes. Read supplied workflow files first, then use the GitHub MCP tools only when fresh GitHub data is required. Use direct `safeoutputs` commands for GitHub writes. Each safe-output type has a small per-run allowance, and a call that fails still spends it: never send an empty, partial or test payload to discover what a tool accepts, because that probe can be recorded as a success, take the allowance with it, and leave the real call refused as over the limit, ending a run that did all the work and published none of it. Call each safe-output tool once, with the complete final payload, only when you are ready to commit to the outcome. For syntax-only validation of a conventional GitHub Actions YAML file, use Ruby's standard YAML library; do not probe, install, or fall back through PyYAML, js-yaml, actionlint, or Docker. A task is complete only after every required Safe Outputs command succeeds. After the final required Safe Outputs command, stop immediately without further tools, prose, or model turns. Use `mcpscripts` only when the runtime explicitly lists it as available.\n\nOUTPUT DISCIPLINE: Do not narrate. Do not explain what you are about to do before doing it. Do not write prose between tool calls. Call tools silently. The only prose you produce is the final result or a brief error explanation when something fails. Never output sentences like 'Let me check...', 'Now I will...', 'I have enough context...', or 'Next I need to...'. If you are about to call a tool, just call it. If you must think, use the todowrite tool, not prose.\n\nMEMORY: agentmemory is the shared long-term store. Start non-trivial tasks by calling its recall/search tool with the key concepts of the task (component names, error text) and reuse what it returns instead of rediscovering it. Before finishing, store 1-3 concise memories of durable non-obvious learnings: architecture constraints, root causes and their fixes, decisions and their why. Skip trivia the repo already documents. Never store secrets or tokens."
|
|
11
11
|
}
|
|
12
12
|
},
|
|
13
13
|
"permission": {
|