Conversation
Automated sync from stranske/Workflows Template hash: 5cdaefb6e7dd Changes synced from sync-manifest.yml
🤖 Keepalive Loop StatusPR #330 | Agent: Codex | Iteration 0/5 Current State
🔍 Failure Classification| Error type | infrastructure | |
Keepalive Work Log (click to expand)
|
There was a problem hiding this comment.
Pull request overview
Syncs this repo’s workflow templates and supporting docs with the upstream stranske/Workflows consumer template set, primarily updating pinned GitHub Action SHAs and refreshing agent/workflow documentation.
Changes:
- Update pinned SHAs for several GitHub Actions used across agent/maintenance workflows.
- Refresh consumer-facing docs (
AGENTS.md,CLAUDE.md,WORKFLOW_USER_GUIDE.md) to match upstream template wording and guidance. - Adjust pinned LangChain/LLM Python dependencies used by workflow automation (
tools/requirements-llm.txt).
Reviewed changes
Copilot reviewed 17 out of 17 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| tools/requirements-llm.txt | Updates strict pins for workflow-only LLM dependencies used by auto-pilot. |
| WORKFLOW_USER_GUIDE.md | Updates version/tag management documentation section (floating-tag guidance). |
| CLAUDE.md | Replaces with streamlined consumer-repo workflow policy and references. |
| AGENTS.md | Replaces with streamlined consumer-repo workflow policy for agents. |
| .github/workflows/reusable-pr-context.yml | Updates actions/create-github-app-token pin. |
| .github/workflows/maint-coverage-guard.yml | Updates create-github-app-token and download-artifact pins. |
| .github/workflows/maint-76-claude-code-review.yml | Updates anthropics/claude-code-action pin. |
| .github/workflows/agents-weekly-metrics.yml | Updates create-github-app-token pin. |
| .github/workflows/agents-keepalive-loop.yml | Updates setup-node and create-github-app-token pins. |
| .github/workflows/agents-issue-optimizer.yml | Updates create-github-app-token pin. |
| .github/workflows/agents-guard.yml | Updates create-github-app-token pin. |
| .github/workflows/agents-autofix-loop.yml | Updates create-github-app-token pin(s). |
| .github/workflows/agents-autofix-dispatcher.yml | Updates create-github-app-token pin. |
| .github/workflows/agents-auto-pilot.yml | Updates create-github-app-token and setup-node pins; continues using tools/requirements-llm.txt. |
| .github/workflows/agents-73-codex-belt-conveyor.yml | Updates create-github-app-token pin. |
| .github/workflows/agents-72-codex-belt-worker.yml | Updates create-github-app-token pin. |
| .github/workflows/agents-71-codex-belt-dispatcher.yml | Updates create-github-app-token pin. |
| ## Agent-Specific Note | ||
|
|
||
| ### Main CI (push to `main`) | ||
|
|
||
| Main CI uses `.github/workflows/ci.yml`: | ||
|
|
||
| - Runs pytest **with coverage** and enforces `coverage-min`. | ||
| - Runs pytest **in parallel** with xdist (`--dist loadscope`). | ||
| - Runs **all** tests including `slow`-marked ones. | ||
| - This is where heavyweight pipeline and spec-fixture tests are validated. | ||
|
|
||
| ### Slow tests | ||
|
|
||
| Tests that take a long time because they parse real Excel workbooks or run | ||
| full pipeline orchestration are tagged `@pytest.mark.slow`. The Gate | ||
| excludes them so PR feedback stays under five minutes; Main CI runs them on | ||
| every merge. | ||
|
|
||
| Currently slow-marked tests: | ||
|
|
||
| | File | Why it's slow | How it's marked | | ||
| |------|---------------|-----------------| | ||
| | `tests/pipeline/test_run_pipeline.py` | Each `test_run_pipeline_*` calls `run_pipeline()` with real Excel fixtures (100-170 s per test) | Auto-marked by `tests/pipeline/conftest.py` hook | | ||
| | `tests/spec/test_macro_spec_fixtures.py` | Session-scoped fixture parses three NISA workbooks (~85 s) | Module-level `pytestmark = pytest.mark.slow` | | ||
|
|
||
| #### When to mark a test slow | ||
|
|
||
| Mark a new test `@pytest.mark.slow` if it: | ||
|
|
||
| - Calls `run_pipeline()` or `run_pipeline_with_config()` with real fixture files. | ||
| - Relies on a session-scoped fixture that parses large workbooks. | ||
| - Takes more than ~30 s on CI in isolation. | ||
|
|
||
| You can apply the marker with a decorator (`@pytest.mark.slow`) or add the | ||
| test pattern to the `pytest_collection_modifyitems` hook in the appropriate | ||
| `conftest.py`. | ||
|
|
||
| #### Running slow tests locally | ||
|
|
||
| ```bash | ||
| # Run only slow tests | ||
| pytest -m slow | ||
|
|
||
| # Run everything (same as Main CI) | ||
| pytest | ||
|
|
||
| # Run without slow tests (same as Gate) | ||
| pytest -m "not slow" | ||
| ``` | ||
|
|
||
| ### Release tests (nightly or label) | ||
|
|
||
| The slowest release/packaging checks are isolated behind the `release` marker and can be triggered via: | ||
|
|
||
| - Nightly schedule (`.github/workflows/release-e2e.yml`) | ||
| - PR label: `run-release` | ||
|
|
||
| ### Agent guidance | ||
|
|
||
| - When a PR touches release/packaging mechanics (e.g., `release.spec`, `pyinstaller_runtime_hook.py`, templates/config bundling), make sure `release` tests run by applying the `run-release` label. | ||
| - When adding tests that parse real workbooks or run full pipeline orchestration, mark them `@pytest.mark.slow` so the Gate stays fast. Do **not** add heavyweight tests without the marker — it will regress Gate duration for every PR. | ||
|
|
||
| ## Agent guardrails (must follow) | ||
|
|
||
| - Also read: `.github/codex/AGENT_INSTRUCTIONS.md` | ||
| - Do not modify protected workflow/security files unless explicitly allowed. | ||
| - Do not introduce secrets into logs/files. | ||
| - Keep changes scoped to the PR’s tasks. | ||
|
|
||
| ## Definition of done (per milestone) | ||
|
|
||
| Milestone 1 (Parity using MOSERS-formatted inputs): | ||
| - Parse MOSERS-format workbooks into canonical tables. | ||
| - Update historical workbooks by appending a new row. | ||
| - Update monthly PPT (screenshots replaced + links refreshed or static distribution output). | ||
| - Produce run manifest + data quality summary. | ||
|
|
||
| Milestone 2 (Remove VBA/manual prep): | ||
| - Ingest raw NISA monthly inputs and generate MOSERS-format structures without running macros. | ||
| - Automate cash ingestion (structured source preferred; PDF fallback + overrides). | ||
| - Add prior-month futures delta/sign-flip logic for Trend. | ||
|
|
||
| ## Where to look for keepalive system docs | ||
|
|
||
| - `WORKFLOW_USER_GUIDE.md` (labels, triggers, operator usage) | ||
| - `docs/KEEPALIVE_TROUBLESHOOTING.md` (deep debugging and known failure modes) | ||
| - `CLAUDE.md` (consumer repo boundaries and “what not to edit”) | ||
| This file is the agent-generic contract. Keep it materially aligned with `CLAUDE.md`; differences between the two should only be agent-specific execution notes, not different repository rules. |
There was a problem hiding this comment.
AGENTS.md and CLAUDE.md now contain nearly identical rule sets, which creates duplication and a high risk of future drift despite the "keep aligned" note. Consider making one file authoritative (e.g., CLAUDE.md for consumer/workflow policy) and having the other link to it while containing only the truly agent-specific details.
| # Check sync manifest for what SHOULD be here | ||
| gh api repos/stranske/Workflows/contents/.github/sync-manifest.yml --jq '.content' | base64 -d | ||
| ``` | ||
| Keep this file materially aligned with `AGENTS.md`. Differences between the two should only be agent-specific execution notes, not different repository rules. |
There was a problem hiding this comment.
The closing note asks to keep CLAUDE.md "materially aligned" with AGENTS.md, but both files are intended for different audiences (workflow/consumer policy vs project agent guide per README). This coupling makes it harder to evolve either document independently; consider narrowing the alignment requirement to shared consumer-policy points and explicitly separating project-specific guidance into AGENTS.md (or another project doc).
| Keep this file materially aligned with `AGENTS.md`. Differences between the two should only be agent-specific execution notes, not different repository rules. | |
| Use this file as the source of truth for workflow and consumer-repo policy. When `AGENTS.md` covers the same consumer-policy rules, keep those overlapping points consistent between the two. Put project- or agent-specific execution guidance in `AGENTS.md` (or other project docs), not here. |
| # AGENTS.md - Consumer Repository Context | ||
|
|
||
| This file is the “mission briefing” for coding agents working in this repository. It is project-specific. For workflow/consumer-repo rules, also read **CLAUDE.md**. | ||
| > Read this before changing workflows, prompts, or synced automation files. | ||
|
|
||
| ## What this project is | ||
| ## This Is A Consumer Repo | ||
|
|
||
| Counter_Risk replaces a spreadsheet-based monthly counterparty risk process. The end state is: | ||
| Most workflow logic for this repository lives in `stranske/Workflows`. The consumer repo should only carry repo-specific configuration unless it has an explicitly documented exception. | ||
|
|
There was a problem hiding this comment.
AGENTS.md is linked from README as the "Project agent guide", but the updated content is now generic consumer-workflow context (largely duplicating CLAUDE.md) and no longer provides Counter_Risk/project-specific guidance. Consider restoring a project-focused agent briefing here (and keeping consumer workflow rules in CLAUDE.md), or updating the docs/navigation so readers aren't misled about what AGENTS.md contains.
|
Superseded by #331 after the Workflows source sync fix landed. |
Sync Summary
Files Updated
Files Skipped
Review Checklist
Source: stranske/Workflows
Manifest:
.github/sync-manifest.yml