Skip to content

chore(issues): replace Issues.txt with multi-repo service improvements#7

Merged
stranske merged 2 commits intomainfrom
codex/issue-2
Dec 20, 2025
Merged

chore(issues): replace Issues.txt with multi-repo service improvements#7
stranske merged 2 commits intomainfrom
codex/issue-2

Conversation

@stranske
Copy link
Copy Markdown
Owner

@stranske stranske commented Dec 20, 2025

Adds 10 issues covering identified gaps and improvements for making the Workflows repository a proper multi-repo CI service:

  1. Create floating v1 tag for stable consumer pinning
  2. Add working-directory input for monorepo support
  3. Document workflow outputs in Integration Guide
  4. Add input validation step to reusable workflows
  5. Create Node.js/TypeScript reusable CI workflow
  6. Parallelize lint steps in Python CI workflow
  7. Add conditional tool installation based on input flags
  8. Create GitHub starter workflow template
  9. Add backward compatibility policy documentation
  10. Create integration test consumer repository

Issues formatted for Agents 63 Issue Intake workflow.

Automated Status Summary

Scope

  • 10 Python test files in tests/workflows/ are excluded from CI and local runs because they import modules from Trend_Model_Project that don't exist in this repository (e.g., scripts.mypy_return_autofix, scripts.fix_cosmetic_aggregate, scripts.update_autofix_expectations). This represents ~50% of the Python test suite being skipped.

Tasks

  • Identify the exact imports needed by examining the excluded test files.
  • Create minimal stub modules that provide the expected interfaces (functions that return sensible defaults or raise NotImplementedError).
  • Remove the corresponding entries from [tool.ruff] exclude in pyproject.toml.
  • Remove the --ignore flags from selftest-ci.yml Python test step.
  • Run the full test suite and fix any remaining import or interface issues.

Acceptance criteria

  • - All 10 previously excluded test files are now included in CI runs.
  • - python -m pytest tests/workflows/ -v runs without collection errors.
  • - Test count increases from ~196 to include the previously skipped tests.
  • - CI workflow passes with expanded test coverage.

Head SHA: 976b4e8
Latest Runs: ✅ success — Gate
Required: gate: ✅ success

Workflow / Job Result Logs
Agents PR meta manager ❔ in progress View run
CI Autofix Loop ✅ success View run
Gate ✅ success View run
Health 40 Sweep ✅ success View run
Health 44 Gate Branch Protection ✅ success View run
Health 45 Agents Guard ✅ success View run
Health 50 Security Scan ✅ success View run
Maint 52 Validate Workflows ✅ success View run
PR 11 - Minimal invariant CI ✅ success View run
Selftest CI ✅ success View run

Adds 10 issues covering identified gaps and improvements for making
the Workflows repository a proper multi-repo CI service:

1. Create floating v1 tag for stable consumer pinning
2. Add working-directory input for monorepo support
3. Document workflow outputs in Integration Guide
4. Add input validation step to reusable workflows
5. Create Node.js/TypeScript reusable CI workflow
6. Parallelize lint steps in Python CI workflow
7. Add conditional tool installation based on input flags
8. Create GitHub starter workflow template
9. Add backward compatibility policy documentation
10. Create integration test consumer repository

Issues formatted for Agents 63 Issue Intake workflow.
Copilot AI review requested due to automatic review settings December 20, 2025 09:44
@github-actions
Copy link
Copy Markdown
Contributor

Gate fast-pass: docs-only change detected; heavy checks skipped.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Dec 20, 2025

Automated Status Summary

Head SHA: 9d47bcf
Latest Runs: ⏳ pending — Gate
Required contexts: Gate / gate, Health 45 Agents Guard / Enforce agents workflow protections
Required: core tests (3.11): ⏳ pending, core tests (3.12): ⏳ pending, docker smoke: ⏳ pending, gate: ⏳ pending

Workflow / Job Result Logs
(no jobs reported) ⏳ pending

Updated automatically; will refresh on subsequent CI/Docker completions.


Keepalive checklist

Scope

  • 10 Python test files in tests/workflows/ are excluded from CI and local runs because they import modules from Trend_Model_Project that don't exist in this repository (e.g., scripts.mypy_return_autofix, scripts.fix_cosmetic_aggregate, scripts.update_autofix_expectations). This represents ~50% of the Python test suite being skipped.

Tasks

  • Identify the exact imports needed by examining the excluded test files.
  • Create minimal stub modules that provide the expected interfaces (functions that return sensible defaults or raise NotImplementedError).
  • Remove the corresponding entries from [tool.ruff] exclude in pyproject.toml.
  • Remove the --ignore flags from selftest-ci.yml Python test step.
  • Run the full test suite and fix any remaining import or interface issues.

Acceptance criteria

  • - All 10 previously excluded test files are now included in CI runs.
  • - python -m pytest tests/workflows/ -v runs without collection errors.
  • - Test count increases from ~196 to include the previously skipped tests.
  • - CI workflow passes with expanded test coverage.

@stranske stranske merged commit 6275846 into main Dec 20, 2025
149 checks passed
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR replaces the old Issues.txt file containing 2 project-specific cleanup tasks with 10 new issues focused on transforming the Workflows repository into a comprehensive multi-repo CI service. The new issues cover versioning, monorepo support, documentation, validation, feature expansion, performance optimization, and testing improvements.

Key changes:

  • Completely replaces previous issues with 10 new strategic improvements
  • Shifts focus from project-specific cleanup to multi-repo service enhancements
  • Maintains consistent formatting for the Agents 63 Issue Intake workflow

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

stranske added a commit that referenced this pull request Jan 1, 2026
- Fix tomlkit isinstance checks - use hasattr for duck typing (#3)
- Add type validation for python_version before str() conversion (#6)
- Fix redundant ternary operators in agents-guard.yml (3 instances) (#1)
- Fix authorIsCodeowner indentation in agents-guard.js (#4)
- Fix inconsistent array indentation in agents-guard.js (#5)
- Remove redundant instructions=[] reassignment in agents-guard.js (#7)
- Fix typo in keepalive_loop.js numbered list comment (#9)

All fixes applied to both main files and templates/consumer-repo.
See docs/CODE_QUALITY_ISSUES.md for issue tracking.
stranske added a commit that referenced this pull request Jan 1, 2026
* fix: address code quality issues from Copilot reviews

- Fix tomlkit isinstance checks - use hasattr for duck typing (#3)
- Add type validation for python_version before str() conversion (#6)
- Fix redundant ternary operators in agents-guard.yml (3 instances) (#1)
- Fix authorIsCodeowner indentation in agents-guard.js (#4)
- Fix inconsistent array indentation in agents-guard.js (#5)
- Remove redundant instructions=[] reassignment in agents-guard.js (#7)
- Fix typo in keepalive_loop.js numbered list comment (#9)

All fixes applied to both main files and templates/consumer-repo.
See docs/CODE_QUALITY_ISSUES.md for issue tracking.

* chore: archive resolved CODE_QUALITY_ISSUES.md
stranske added a commit that referenced this pull request Jan 1, 2026
- Fix tomlkit isinstance checks - use hasattr for duck typing (#3)
- Add type validation for python_version before str() conversion (#6)
- Fix redundant ternary operators in agents-guard.yml (3 instances) (#1)
- Fix authorIsCodeowner indentation in agents-guard.js (#4)
- Fix inconsistent array indentation in agents-guard.js (#5)
- Remove redundant instructions=[] reassignment in agents-guard.js (#7)
- Fix typo in keepalive_loop.js numbered list comment (#9)

All fixes applied to both main files and templates/consumer-repo.
See docs/CODE_QUALITY_ISSUES.md for issue tracking.
stranske added a commit that referenced this pull request Jan 1, 2026
* fix: address code quality issues from Copilot reviews

- Fix tomlkit isinstance checks - use hasattr for duck typing (#3)
- Add type validation for python_version before str() conversion (#6)
- Fix redundant ternary operators in agents-guard.yml (3 instances) (#1)
- Fix authorIsCodeowner indentation in agents-guard.js (#4)
- Fix inconsistent array indentation in agents-guard.js (#5)
- Remove redundant instructions=[] reassignment in agents-guard.js (#7)
- Fix typo in keepalive_loop.js numbered list comment (#9)

All fixes applied to both main files and templates/consumer-repo.
See docs/CODE_QUALITY_ISSUES.md for issue tracking.

* chore: archive resolved CODE_QUALITY_ISSUES.md

* fix: prevent useless follow-up issues when source lacks criteria

Add isMissingInfoGap() to detect verifier gaps that are about missing
source info rather than actual verification failures. These gaps (like
'Provide explicit acceptance criteria in the PR description') indicate
the source issue/PR lacked structured criteria, not that verification
found actual problems.

Updated hasSubstantiveContent check to filter out these 'missing info'
gaps, preventing creation of follow-up issues when there's nothing
actionable to fix.

Fixes issue #415 scenario where follow-up issues were created despite
having only placeholder content because the verifier gaps were about
missing source info.

Added 7 new tests:
- isMissingInfoGap() unit tests
- Integration tests for hasSubstantiveContent with missing info gaps

* fix: resolve mypy union-attr errors in resolve_mypy_pin.py

Use dict() to normalize tomlkit Table objects with type: ignore[call-overload]
comments to satisfy mypy type checking while preserving duck-typing
compatibility with tomlkit's custom container types.

Fixes mypy errors:
  tools/resolve_mypy_pin.py:36: error: Item "None" has no attribute "get" [union-attr]
  tools/resolve_mypy_pin.py:39: error: Item "None" has no attribute "get" [union-attr]

* fix: broaden type ignore to cover both arg-type and call-overload

Different mypy versions report different error codes for the same issue.
Use a combined ignore comment to handle both.

* fix: address bot review comments from PR #417

1. Remove redundant /i regex flags in isMissingInfoGap() since text
   is already lowercased via .toLowerCase()

2. Improve numbered list comment in keepalive_loop.js to clarify
   both 1., 2., 3. and 1), 2), 3) formats are matched

3. Fix ALL remaining redundant ternary operators for Number() conversion:
   - agents-guard.yml (3 instances - lines 314, 442 fixed)
   - health-44-gate-branch-protection.yml (1 instance)
   - agents_pr_meta_update_body.js (1 instance)
   - templates/consumer-repo agents-guard.yml (2 instances)

4. Add missing tests for formatSimpleFollowUpIssue hasSubstantiveContent
   with missing info gaps (2 new test cases)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants