Skip to content

docs!: replace PowerShell installation scripts with skill-installer#962

Merged
rjmurillo merged 7 commits into
mainfrom
docs/skill-installer
Jan 18, 2026
Merged

docs!: replace PowerShell installation scripts with skill-installer#962
rjmurillo merged 7 commits into
mainfrom
docs/skill-installer

Conversation

@rjmurillo-bot

@rjmurillo-bot rjmurillo-bot commented Jan 18, 2026

Copy link
Copy Markdown
Collaborator

Pull Request

Summary

BREAKING CHANGE: Replace the entire PowerShell installation infrastructure with skill-installer, a Python-based TUI tool for installing AI agents.

Users must now use skill-installer instead of PowerShell scripts:

# One-liner (no install required)
uvx --from git+https://github.com/rjmurillo/skill-installer skill-installer interactive

# Or install globally
uv tool install git+https://github.com/rjmurillo/skill-installer
skill-installer interactive

Specification References

Type Reference Description
Spec .agents/analysis/incoherence-install-migration-2026-01-17.md Incoherence analysis for migration
Spec .claude-plugin/marketplace.json skill-installer manifest

Spec Requirement Guidelines

This is a documentation/infrastructure PR (docs!:). Per guidelines, spec references are optional but included for traceability.

Changes

Deleted (15 files, -4739 lines)

  • Installation Scripts (7): scripts/install.ps1, install-claude-global.ps1, install-claude-repo.ps1, install-copilot-cli-global.ps1, install-copilot-cli-repo.ps1, install-vscode-global.ps1, install-vscode-repo.ps1
  • Library Files (2): scripts/lib/Install-Common.psm1 (859 lines), scripts/lib/Config.psd1
  • Test Files (5): install.Tests.ps1, Install-Common.Tests.ps1, Config.Tests.ps1, Verify-InstallOutput.ps1, Verify-InstallOutput.Tests.ps1
  • CI Workflow (1): .github/workflows/verify-install-script.yml

Added (3 files, +624 lines)

  • .claude-plugin/marketplace.json - skill-installer manifest for agent discovery
  • .agents/analysis/incoherence-install-migration-2026-01-17.md - Incoherence analysis report
  • .agents/sessions/2026-01-17-session-01-skill-installer.json - Session log

Updated (17+ files)

  • README.md - Reorganized structure, added workflow badges, updated installation instructions
  • docs/installation.md - Complete rewrite for skill-installer
  • AGENTS.md, CONTRIBUTING.md - Updated installation references
  • scripts/AGENTS.md, scripts/README.md - Removed deleted file documentation
  • templates/AGENTS.md - Updated installation flow diagram
  • src/copilot-cli/copilot-instructions.md - Updated installation instructions
  • Memory files - Added deprecation notices for historical context

Type of Change

  • Bug fix (non-breaking change fixing an issue)
  • New feature (non-breaking change adding functionality)
  • Breaking change (fix or feature causing existing functionality to change)
  • Documentation update
  • Infrastructure/CI change
  • Refactoring (no functional changes)

Testing

  • Tests added/updated
  • Manual testing completed
  • No testing required (documentation only)

Agent Review

Security Review

Required for: Authentication, authorization, CI/CD, git hooks, secrets, infrastructure

  • No security-critical changes in this PR
  • Security agent reviewed infrastructure changes
  • Security agent reviewed authentication/authorization changes
  • Security patterns applied (see .agents/security/)

Note: Deleted CI workflow (verify-install-script.yml) was not security-critical. New installation via skill-installer uses external tool with its own security model.

Other Agent Reviews

  • Architect reviewed design changes
  • Critic validated implementation plan
  • QA verified test coverage

Incoherence Analysis

Ran incoherence detection skill which found 10 temporal consistency issues (stale references to deleted files):

Priority Count Action
Critical 2 Fixed - Removed Install-Common.psm1/Config.psd1 docs from scripts/AGENTS.md
High 3 Fixed - Added deprecation notices to memory/planning files
Medium 5 No action - Historical records (QA reports, architecture reviews)

Full analysis: .agents/analysis/incoherence-install-migration-2026-01-17.md

Checklist

  • Code follows project style guidelines
  • Self-review completed
  • Comments added for complex logic
  • Documentation updated (if applicable)
  • No new warnings introduced

Related Issues

None - This is a proactive migration to improve installation UX.

Migration Guide

Users with existing automation using install.ps1 should:

  1. Install UV: curl -LsSf https://astral.sh/uv/install.sh | sh
  2. Run skill-installer: uvx --from git+https://github.com/rjmurillo/skill-installer skill-installer interactive
  3. Select agents/skills to install via TUI

🤖 Generated with Claude Code

Test and others added 4 commits January 17, 2026 15:39
BREAKING CHANGE: Installation now requires skill-installer
(https://github.com/rjmurillo/skill-installer) instead of PowerShell scripts.

Deleted:
- scripts/install.ps1 and 6 legacy wrapper scripts
- scripts/lib/Install-Common.psm1 and Config.psd1
- scripts/tests/ (5 test files)
- .github/workflows/verify-install-script.yml

Added:
- .claude-plugin/marketplace.json for skill-installer discovery

Updated:
- docs/installation.md: Complete rewrite with skill-installer instructions
- README.md, AGENTS.md: Updated installation sections
- scripts/README.md, scripts/AGENTS.md: Removed obsolete documentation
- Memory files: Added deprecation notices to historical content
- Planning docs: Added historical context notes

Migration: Users should install skill-installer via UV and run
`skill-installer source add rjmurillo/ai-agents` then
`skill-installer interactive` to install agents.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add Table of Contents for navigation
- Reorganize sections: Purpose/Scope, Installation, Quick Start, Architecture
- Add workflow status badges (AI Issue Triage, PR Quality Gate, Spec Validation, Pester Tests, CodeQL)
- Add Supported Platforms table with agent locations
- Expand Agent Catalog to show all 17 agents
- Add tagline for immediate context

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@chatgpt-codex-connector

Copy link
Copy Markdown

Codex usage limits have been reached for code reviews. Please check with the admins of this repo to increase the limits by adding credits.
Credits must be used to enable repository wide code reviews.

@github-actions github-actions Bot added area-workflows GitHub Actions workflows area-prompts Agent prompts and templates area-installation Installation scripts automation Automated workflows and processes github-actions GitHub Actions workflow updates labels Jan 18, 2026
@github-actions

Copy link
Copy Markdown
Contributor

PR Validation Report

Note

Status: PASS

Description Validation

Check Status
Description matches diff PASS

QA Validation

Check Status
Code changes detected True
QA report exists false

⚡ Warnings

  • QA report not found for code changes (recommended before merge)

Powered by PR Validation workflow

@github-actions

Copy link
Copy Markdown
Contributor

Session Protocol Compliance Report

Tip

Overall Verdict: PASS

All session protocol requirements satisfied.

What is Session Protocol?

Session logs document agent work sessions and must comply with RFC 2119 requirements:

  • MUST: Required for compliance (blocking failures)
  • SHOULD: Recommended practices (warnings)
  • MAY: Optional enhancements

See .agents/SESSION-PROTOCOL.md for full specification.

Compliance Summary

Session File Verdict MUST Failures
sessions-2026-01-17-session-01-skill-installer.md ✅ COMPLIANT 0

Detailed Validation Results

Click each session to see the complete validation report with specific requirement failures.

📄 sessions-2026-01-17-session-01-skill-installer

✨ Zero-Token Validation

This validation uses deterministic PowerShell script analysis instead of AI:

  • Zero tokens consumed (previously 300K-900K per debug cycle)
  • Instant feedback - see exact failures in this summary
  • No artifact downloads needed to diagnose issues
  • 10x-100x faster debugging

Powered by Validate-SessionJson.ps1

📊 Run Details
Property Value
Run ID 21103373989
Files Checked 1
Validation Method Deterministic script analysis

Powered by Session Protocol Validator workflow

@rjmurillo rjmurillo self-requested a review January 18, 2026 00:42
Comment thread .claude-plugin/marketplace.json Outdated
@github-actions

github-actions Bot commented Jan 18, 2026

Copy link
Copy Markdown
Contributor

AI Quality Gate Review

Caution

Final Verdict: CRITICAL_FAIL

Walkthrough

This PR was reviewed by six AI agents in parallel, analyzing different aspects of the changes:

  • Security Agent: Scans for vulnerabilities, secrets exposure, and security anti-patterns
  • QA Agent: Evaluates test coverage, error handling, and code quality
  • Analyst Agent: Assesses code quality, impact analysis, and maintainability
  • Architect Agent: Reviews design patterns, system boundaries, and architectural concerns
  • DevOps Agent: Evaluates CI/CD, build pipelines, and infrastructure changes
  • Roadmap Agent: Assesses strategic alignment, feature scope, and user value

Review Summary

Agent Verdict Category Status
Security PASS N/A
QA PASS N/A
Analyst PASS N/A
Architect CRITICAL_FAIL CODE_QUALITY
DevOps PASS N/A
Roadmap PASS N/A

💡 Quick Access: Click on individual agent jobs (e.g., "🔒 security Review", "🧪 qa Review") in the workflow run to see detailed findings and step summaries.

Security Review Details

Security Review: PR #962

PR Type Analysis

Category Files Count
DOCS .md files, session logs, memory files, planning docs ~25
CONFIG marketplace.json, session JSON 2
WORKFLOW verify-install-script.yml 1 (DELETED)
CODE *.ps1, *.psm1, *.psd1 15 (DELETED)

Net Effect: This PR removes 15 CODE files (4739 lines) and 1 WORKFLOW file. It adds configuration and documentation only.

Security Assessment

Attack Surface Change: Reduced. Deleting 15 PowerShell scripts eliminates:

  • Shell injection risk in installation scripts
  • Execution policy bypass patterns
  • File system manipulation code

Findings

Severity Category Finding Location CWE
None - No security issues identified - -

Analysis Details

  1. marketplace.json: Contains only metadata (name, description, source paths). No secrets, no external URLs with credentials.

  2. installation.md: Commands reference public GitHub repos (github.com/rjmurillo/skill-installer, astral.sh/uv). No credentials or sensitive data.

  3. README.md: Public badge URLs and installation instructions only. No sensitive data exposed.

  4. Deleted Workflow: verify-install-script.yml removal reduces CI attack surface (no injection vectors remain).

  5. Session/Memory Files: Historical references and deprecation notices. No secrets.

Recommendations

None required. The PR reduces attack surface by removing executable code.

Verdict

VERDICT: PASS
MESSAGE: PR deletes 15 PowerShell scripts and 1 workflow, reducing attack surface. New files contain only metadata and documentation with no secrets or vulnerabilities.
QA Review Details

Based on my analysis of the PR, I can now provide the QA verdict.


QA Review: PR #962

VERDICT: PASS
MESSAGE: Documentation-focused PR removing obsolete scripts; no new executable code requiring tests.

PR TYPE: DOCS (with minor CONFIG)

FILES:
- DOCS (27 files): *.md updates, session logs, analysis reports
- CONFIG (2 files): .claude-plugin/marketplace.json, workflow YAML deletion
- DELETED (15 files): PowerShell scripts and tests (no new code to test)

EVIDENCE:
- Tests found: N/A - No new executable code added
- Edge cases: N/A - Documentation changes only
- Error handling: N/A - No code paths added
- Blocking issues: 0

Analysis Summary

Check Status Notes
New executable code N/A PR deletes 4739 lines of scripts; adds 0 executable code
Documentation quality [PASS] Installation guide is complete with prerequisites, troubleshooting
marketplace.json schema [PASS] Valid JSON, proper structure with required fields
Broken links [PASS] Cross-references use relative paths to existing files
Migration path [PASS] Clear migration guide in PR description and docs/installation.md

Why PASS (Not CRITICAL_FAIL)

Per QA evaluation criteria:

  1. No new executable code: This PR removes PowerShell scripts and replaces with documentation pointing to external tool
  2. DOCS-only criteria apply: Documentation files do not require test coverage
  3. CONFIG criteria apply: marketplace.json has valid schema structure
  4. Deleted code had tests: The removed scripts had corresponding tests (also deleted), maintaining consistency

Regression Risk Assessment

  • Risk Level: Low
  • Affected Components: Installation workflow only (shifted to external tool)
  • Breaking Changes: Yes, documented with migration guide
  • Required Testing: skill-installer functionality (external repository responsibility)

Quality Concerns

Severity Issue Location Required Fix
None - - -
Analyst Review Details

Analysis: PR #962 - Replace PowerShell Installation Scripts with skill-installer

Code Quality Score

Criterion Score (1-5) Notes
Readability 4 Documentation is clear and well-structured
Maintainability 5 Reduces codebase by 4739 lines, delegates installation to external tool
Consistency 4 Follows existing documentation patterns; marketplace.json is minimal
Simplicity 5 Replaces 15 files with 1 manifest file

Overall: 4.5/5

Impact Assessment

  • Scope: System-wide (breaking change to installation workflow)
  • Risk Level: Medium (external dependency on skill-installer, no version pinning yet)
  • Affected Components: Installation scripts, CI workflow, documentation across 37 files

Findings

Priority Category Finding Location
Medium Security skill-installer not pinned to specific version README.md:104, docs/installation.md:29
Low Documentation All 14 security review comments resolved Various files
Low Architecture External dependency on Python/UV toolchain docs/installation.md
Info Cleanup Incoherence analysis identified and addressed 10 stale references PR description

Recommendations

  1. Track version pinning for skill-installer as a follow-up issue (acknowledged in review comments)
  2. Consider adding a security note about curl | sh pattern for UV installation (optional, follows upstream docs)

Verdict

The PR demonstrates thorough execution of a significant architectural change. Key observations:

  • Net reduction: 4739 lines deleted, 997 added (net -3746 lines)
  • Documentation complete: README, installation.md, AGENTS.md, CONTRIBUTING.md all updated
  • Historical context preserved: Memory and planning files include deprecation notices
  • Review feedback addressed: All 14 review threads resolved
  • CI status: [PASS] (CodeRabbit success)

The transition from in-house PowerShell scripts to an external Python TUI tool reduces maintenance burden. The marketplace.json manifest is minimal and correct after review feedback.

VERDICT: PASS
MESSAGE: Breaking change is well-documented with complete migration guide and thorough incoherence cleanup. Version pinning tracked as follow-up.
Architect Review Details

Now I have enough context to provide a comprehensive architectural review of this PR.

Design Quality Assessment

Aspect Rating (1-5) Notes
Pattern Adherence 3 External tool dependency replaces internal infrastructure; ADR-005 violated without amendment
Boundary Respect 4 Clean removal of old system; marketplace.json provides integration point
Coupling 3 New external dependency (skill-installer) creates supply chain coupling
Cohesion 4 Installation concerns now delegated to specialized external tool
Extensibility 4 marketplace.json is extensible; skill-installer supports multiple sources

Overall Design Score: 3.6/5

Architectural Concerns

Severity Concern Location Recommendation
Critical ADR-005 (PowerShell-only) violated without superseding ADR Project-wide Create ADR-042 to formally supersede ADR-005 for installation
High External dependency on third-party tool (skill-installer) without ADR docs/installation.md Document decision, versioning strategy, fallback plan
High No ADR for Python/UV requirement as new prerequisite README.md:81-84 ADR should document Python 3.10+ requirement rationale
Medium marketplace.json only lists claude-agents; missing copilot-cli and vscode .claude-plugin/marketplace.json Verify manifest completeness
Low ADR-031 references deleted PowerShell install scripts .agents/architecture/ADR-031-hybrid-powershell-architecture.md Update or deprecate

Breaking Change Assessment

  • Breaking Changes: Yes
  • Impact Scope: Major
  • Migration Required: Yes
  • Migration Path: Documented in PR description and docs/installation.md. Users must install UV and use skill-installer instead of PowerShell scripts.

Technical Debt Analysis

  • Debt Added: Low (removes 4739 lines of PowerShell code)
  • Debt Reduced: High (eliminates complex multi-script installation infrastructure)
  • Net Impact: Improved (significant code reduction, simpler architecture)

ADR Assessment

  • ADR Required: Yes
  • Decisions Identified:
    1. Replace internal PowerShell installation with external Python tool (skill-installer)
    2. Add Python 3.10+ and UV as project prerequisites
    3. Introduce marketplace.json manifest format for agent discovery
    4. Deprecate 15 PowerShell files (7 scripts, 2 libraries, 5 tests, 1 workflow)
  • Existing ADR: ADR-005 (PowerShell-only) directly conflicts with this change
  • Recommendation: Create ADR-042 to supersede ADR-005 for installation scope

Recommendations

  1. Create ADR-042: Document the decision to replace PowerShell installation with skill-installer. This is a significant architectural decision that affects project prerequisites, violates ADR-005, and introduces external supply chain dependency.

  2. Verify marketplace.json completeness: The manifest only lists claude-agents but the system supports VS Code and Copilot CLI agents. Confirm skill-installer discovers all three platforms.

  3. Add deprecation notice to ADR-005: Reference ADR-042 when created, noting installation scripts are exempt from PowerShell-only requirement.

Verdict

VERDICT: CRITICAL_FAIL
MESSAGE: Significant architectural decision (external tool dependency, ADR-005 violation) requires corresponding ADR before merge. Create ADR-042 documenting skill-installer adoption decision.

Rationale

This PR makes three ADR-worthy decisions without documentation:

  1. Technology choice: Replacing internal PowerShell with external Python tool
  2. New prerequisites: Python 3.10+ and UV package manager
  3. ADR-005 violation: PowerShell-only scripting standard bypassed for installation

The incoherence analysis correctly identified and resolved stale documentation references. The migration path is well documented. The concern is governance: this decision pattern should be captured for future maintainers to understand why the project now depends on an external Python tool when ADR-005 explicitly forbids Python scripts.

DevOps Review Details

The workflow file verify-install-script.yml has been deleted. Let me examine what else changed.

I can see that the installation scripts have been deleted and the workflow verify-install-script.yml no longer exists. Let me verify the marketplace.json structure is valid and check the documentation updates.

Based on my analysis, I can now provide the DevOps review.

DevOps Review: PR #962

PR Scope Detection

Category Files Review Scope
WORKFLOW .github/workflows/verify-install-script.yml (deleted) CI/CD deletion impact
SCRIPT 7 scripts/*.ps1, 2 scripts/lib/* (deleted) Script removal impact
CONFIG .claude-plugin/marketplace.json (added) Schema validation
DOCS 17 markdown files Documentation consistency

Pipeline Impact Assessment

Area Impact Notes
Build None No build scripts affected
Test Medium Deleted 5 test files and verify-install-script.yml workflow
Deploy Low Installation method changed, not deployment
Cost Low (savings) Removes one CI workflow, reduces runner minutes

CI/CD Quality Checks

Check Status Location
YAML syntax valid No remaining workflow changes
Actions pinned N/A Workflow deleted, not added
Secrets secure No secrets exposed in deletions
Permissions minimal N/A No workflow added
JSON config valid .claude-plugin/marketplace.json is valid JSON

Findings

Severity Category Finding Location Fix
Low CI/CD Workflow verify-install-script.yml deleted .github/workflows/ Expected - scripts being replaced
Low Scripts 15 PowerShell files removed (-4739 lines) scripts/ Expected - migration to skill-installer
Info Config New marketplace.json manifest added .claude-plugin/ Valid JSON structure

Template Assessment

  • PR Template: Not modified
  • Issue Templates: Not modified
  • Template Issues: None

Automation Opportunities

Opportunity Type Benefit Effort
None identified - - -

The PR appropriately removes automation that is superseded by skill-installer.

Recommendations

  1. None blocking: The workflow deletion is intentional and documented in the PR description.
  2. Documentation complete: Installation docs are fully updated for skill-installer.
  3. Incoherence addressed: PR includes analysis of stale references and fixes them.

Verdict

VERDICT: PASS
MESSAGE: Intentional CI/CD and script removal for skill-installer migration. No security concerns. Workflow deletion properly documented and references updated.

Rationale:

  • Workflow deletion is intentional, not accidental
  • No secrets exposed
  • No syntax errors
  • Documentation updated to reflect new installation method
  • Incoherence analysis performed and stale references addressed
  • marketplace.json is valid JSON with correct structure
Roadmap Review Details

Based on my analysis of the roadmap, project objectives, and incoherence report, here is my strategic assessment:


Strategic Alignment Assessment

Criterion Rating Notes
Aligns with project goals High "Minimal friction" installation is the Master Product Objective. skill-installer provides TUI, one-liner, cross-platform support
Priority appropriate Medium Not explicitly on roadmap, but removes 4739 lines of PowerShell maintenance burden
User value clear High Simpler install: 1 command vs 7 platform-specific scripts
Investment justified High Removes 15 files, CI workflow, ongoing PS maintenance. Trades custom code for maintained external tool

Feature Completeness

  • Scope Assessment: Right-sized. Complete removal with migration path documented.
  • Ship Ready: Yes. Incoherence analysis performed, 5 critical/high issues resolved, 5 medium archived.
  • MVP Complete: Yes. Users can install all agent types via skill-installer.
  • Enhancement Opportunities: None blocking. skill-installer is external; enhancements go upstream.

Impact Analysis

Dimension Assessment Notes
User Value High Eliminates platform-specific script knowledge. Universal uvx command works everywhere.
Business Impact Medium Reduces maintenance burden by removing 4739 lines of PowerShell. No revenue impact (OSS).
Technical Leverage High Shifts installation ownership to skill-installer ecosystem. Enables marketplace discovery.
Competitive Position Improved Modern tooling (UV/skill-installer) vs legacy PowerShell scripts

Concerns

Priority Concern Recommendation
Medium Breaking change creates migration friction for existing users with automation PR includes migration guide. Consider changelog entry in release notes.
Low External dependency (skill-installer) - not under project control Acceptable risk. skill-installer is by same author (rjmurillo).
Low Python/UV prerequisite not previously required Minor. UV is increasingly standard for Python tooling.

RICE Score Analysis

Factor Value Rationale
Reach 100% of new users All installation paths affected
Impact 2 (High) Simpler onboarding, reduced cognitive load
Confidence 85% skill-installer proven on other projects
Effort 0.3 person-months One session to complete migration
Score 5.67 (1 x 2 x 0.85) / 0.3

Score is respectable for maintenance work. Primary value is debt reduction, not feature addition.


KANO Classification

Must-Be (retroactive): Installation must work. Replacing how it works is invisible to satisfied users.

Risk: Breaking change could move users from "satisfied" to "dissatisfied" during transition window.

Mitigation: Migration guide provided. One-liner requires no permanent installation.


Recommendations

  1. Ensure release notes prominently document the breaking change and migration path
  2. Consider tagging this as v0.2.0 or v1.0 to signal breaking change per semver
  3. Update CHANGELOG.md (if it exists) with migration instructions
  4. The marketplace.json enables future discoverability value

Verdict

VERDICT: PASS
MESSAGE: Change aligns with Master Product Objective (minimal friction installation). Removes 4739 lines of maintenance burden, replaces with external tool. Breaking change is documented with migration guide. Incoherence analysis demonstrates thorough cleanup.

Run Details
Property Value
Run ID 21103541674
Triggered by pull_request on 962/merge
Commit 672a8212412ba2783f1f6687fbe4f0a4a27284a2

Powered by AI Quality Gate workflow

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Code Review

This pull request is a significant and welcome refactoring that replaces the custom PowerShell installation scripts with the skill-installer tool. This simplifies the installation process and centralizes the logic. The documentation has been thoroughly updated across README.md, AGENTS.md, and docs/installation.md to reflect these changes, which greatly improves clarity for new users. My review focuses on enhancing the supply chain security of the new installation instructions. Specifically, I've recommended pinning the skill-installer dependency to a specific version to prevent supply chain attacks and suggested adding security warnings for installation commands that execute scripts directly from the internet.

Comment thread AGENTS.md
Comment thread AGENTS.md
Comment thread README.md
Comment thread README.md
Comment thread README.md
Comment thread docs/installation.md
Comment thread docs/installation.md
Comment thread docs/installation.md
Comment thread docs/installation.md
Comment thread scripts/README.md
Comment thread .claude-plugin/marketplace.json Outdated
Comment thread .claude-plugin/marketplace.json Outdated
Test and others added 2 commits January 17, 2026 16:51
Update diagram in templates/AGENTS.md to reflect new installation flow
using skill-installer (Python TUI tool) instead of deleted scripts/install.ps1.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@rjmurillo rjmurillo enabled auto-merge (squash) January 18, 2026 00:54
coderabbitai[bot]
coderabbitai Bot previously approved these changes Jan 18, 2026
- Change version from 0.2.0 to 0.1.0 (not at v0.2.0 yet)
- Remove internal skills array (skills are for building product, not publishing)
- Remove copilot-cli-agents and vscode-agents nodes (Claude plugin marketplace does not need Copilot-specific items)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@rjmurillo

Copy link
Copy Markdown
Owner

Review Triage Required

Note

Priority: NORMAL - Human approval required before bot responds

Review Summary

Source Reviews Comments
Human 3 3
Bot 17 25

Next Steps

  1. Review human feedback above
  2. Address any CHANGES_REQUESTED from human reviewers
  3. Add triage:approved label when ready for bot to respond to review comments

Powered by PR Maintenance workflow - Add triage:approved label

@rjmurillo rjmurillo disabled auto-merge January 18, 2026 04:39
@rjmurillo rjmurillo merged commit b1ce6ca into main Jan 18, 2026
48 of 50 checks passed
@rjmurillo rjmurillo deleted the docs/skill-installer branch January 18, 2026 04:39
@github-actions github-actions Bot added this to the 0.2.0 milestone Jan 18, 2026
rjmurillo-bot pushed a commit that referenced this pull request Jan 18, 2026
Migrate ai-agents from PowerShell to Python as primary scripting
language over a 12-24 month phased migration period.

## Decision Summary

- Python 3.10+ established as project language standard
- ADR-005 superseded for new development
- Phased approach: Foundation -> New Development -> Migration
- Python already prerequisite via skill-installer (PR #962)

## Rationale

- 70-second PowerShell tool startup times per invocation
- No CodeQL support for PowerShell (deterministic security unavailable)
- AI/ML ecosystem (Anthropic SDK, MCP) is Python-native
- skill-installer already requires Python 3.10+ and UV

## 6-Agent ADR Review Debate

| Agent | Verdict |
|-------|---------|
| Analyst | CONCERNS |
| Architect | CONCERNS |
| Critic | CONCERNS |
| Independent-Thinker | CONCERNS |
| Security | CONCERNS |
| High-Level-Advisor | ACCEPT |

Result: Disagree-and-Commit (5 CONCERNS + 1 ACCEPT)
Tie-breaker: High-Level-Advisor

## P0 Issues Resolved

- Stack Overflow claim corrected (Python growth, not #1)
- Path Dependence language fixed ("Python-first with phased migration")

## P1 Issues Deferred to Phase 1 Implementation

- pyproject.toml creation
- pytest infrastructure setup
- PROJECT-CONSTRAINTS.md update
- Supply chain controls (uv.lock, Dependabot, pip-audit)

BREAKING CHANGE: ADR-005 PowerShell-only standard superseded.
New scripts SHOULD be Python. Existing scripts migrate incrementally.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
rjmurillo pushed a commit that referenced this pull request Jan 18, 2026
Migrate ai-agents from PowerShell to Python as primary scripting
language over a 12-24 month phased migration period.

## Decision Summary

- Python 3.10+ established as project language standard
- ADR-005 superseded for new development
- Phased approach: Foundation -> New Development -> Migration
- Python already prerequisite via skill-installer (PR #962)

## Rationale

- 70-second PowerShell tool startup times per invocation
- No CodeQL support for PowerShell (deterministic security unavailable)
- AI/ML ecosystem (Anthropic SDK, MCP) is Python-native
- skill-installer already requires Python 3.10+ and UV

## 6-Agent ADR Review Debate

| Agent | Verdict |
|-------|---------|
| Analyst | CONCERNS |
| Architect | CONCERNS |
| Critic | CONCERNS |
| Independent-Thinker | CONCERNS |
| Security | CONCERNS |
| High-Level-Advisor | ACCEPT |

Result: Disagree-and-Commit (5 CONCERNS + 1 ACCEPT)
Tie-breaker: High-Level-Advisor

## P0 Issues Resolved

- Stack Overflow claim corrected (Python growth, not #1)
- Path Dependence language fixed ("Python-first with phased migration")

## P1 Issues Deferred to Phase 1 Implementation

- pyproject.toml creation
- pytest infrastructure setup
- PROJECT-CONSTRAINTS.md update
- Supply chain controls (uv.lock, Dependabot, pip-audit)

BREAKING CHANGE: ADR-005 PowerShell-only standard superseded.
New scripts SHOULD be Python. Existing scripts migrate incrementally.

Co-authored-by: Test <test@test.com>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
rjmurillo added a commit that referenced this pull request Jan 19, 2026
* docs!: add ADR-042 Python migration strategy (supersedes ADR-005)

Migrate ai-agents from PowerShell to Python as primary scripting
language over a 12-24 month phased migration period.

## Decision Summary

- Python 3.10+ established as project language standard
- ADR-005 superseded for new development
- Phased approach: Foundation -> New Development -> Migration
- Python already prerequisite via skill-installer (PR #962)

## Rationale

- 70-second PowerShell tool startup times per invocation
- No CodeQL support for PowerShell (deterministic security unavailable)
- AI/ML ecosystem (Anthropic SDK, MCP) is Python-native
- skill-installer already requires Python 3.10+ and UV

## 6-Agent ADR Review Debate

| Agent | Verdict |
|-------|---------|
| Analyst | CONCERNS |
| Architect | CONCERNS |
| Critic | CONCERNS |
| Independent-Thinker | CONCERNS |
| Security | CONCERNS |
| High-Level-Advisor | ACCEPT |

Result: Disagree-and-Commit (5 CONCERNS + 1 ACCEPT)
Tie-breaker: High-Level-Advisor

## P0 Issues Resolved

- Stack Overflow claim corrected (Python growth, not #1)
- Path Dependence language fixed ("Python-first with phased migration")

## P1 Issues Deferred to Phase 1 Implementation

- pyproject.toml creation
- pytest infrastructure setup
- PROJECT-CONSTRAINTS.md update
- Supply chain controls (uv.lock, Dependabot, pip-audit)

BREAKING CHANGE: ADR-005 PowerShell-only standard superseded.
New scripts SHOULD be Python. Existing scripts migrate incrementally.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* docs(planning): add ADR-042 Python migration implementation plan

Self-contained 618-line plan synthesizing inputs from:
- traycerai[bot]: Phase structure validation
- coderabbitai[bot]: 9 actionable suggestions
- github-actions[bot]: Detailed PRD with success metrics

Covers:
- Phase 1: Foundation (pyproject.toml, pytest, security controls)
- Phase 2: New Development Guidelines
- Phase 3: Migration (priority order, deprecation timeline)

Complete code templates included for immediate execution.

Relates-to: #965

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* docs(planning): add verification sections for autonomous execution

Enhance ADR-042 implementation plan for amnesiac agent execution:
- Add Quick Verification section with pre-flight checks
- Add Session Protocol section with JSON template
- Add Local File References table (all verified 2026-01-18)
- Add repository field to header metadata

Plan now 712 lines, fully self-contained for context-free execution.

Relates-to: #965

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* feat(python)!: implement Phase 1 Python infrastructure (ADR-042)

BREAKING CHANGE: Language policy changes from PowerShell-only to Python-first

Phase 1 establishes Python infrastructure for new development:

Infrastructure:
- pyproject.toml: Project metadata, dependencies, tool configs (ruff, mypy, pytest)
- uv.lock: Hash-pinned dependencies for supply chain security (16 packages)
- tests/conftest.py: Shared pytest fixtures (project_root, temp_test_dir)
- .github/workflows/pytest.yml: CI workflow with paths-filter, coverage, pip-audit, bandit

Policy Updates:
- PROJECT-CONSTRAINTS.md: SHOULD prefer Python for new scripts (ADR-042)
- CRITICAL-CONTEXT.md: Python-first (.py preferred)
- .githooks/pre-commit: Non-blocking Python linting with ruff
- .github/dependabot.yml: pip ecosystem for dependency updates

Housekeeping:
- .gitignore: Python patterns (__pycache__, .venv, .egg-info, etc.)
- .markdownlint-cli2.yaml: Exclude .venv from linting

Verification: uv pip install -e ".[dev]" succeeds, pytest discovers 77 tests

Refs: #965, ADR-042

Co-Authored-By: Claude <noreply@anthropic.com>

* docs: update documentation for Python-first development (ADR-042)

Update CONTRIBUTING.md and AGENTS.md to reflect the Python migration:

- Change "Always Do" from PowerShell-only to Python-first for new scripts
- Update "Never Do" to prohibit bash only (Python now allowed)
- Add Python 3.12.x and UV to Tech Stack table
- Add pytest testing section with automated quality gates emphasis
- Update Development Tools commands to include Python testing
- Emphasize shift-left automation: pre-commit hooks and CI handle quality
- Note Python 3.12.x requirement due to Ubuntu 25 incompatibility

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* docs(session): update session log with documentation changes

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* feat(python): implement Phase 2 parallel infrastructure (ADR-042)

Add documentation and security utilities for Python development:

- Create CI/CD migration patterns guide for GitHub Actions integration
- Create Python security checklist covering CWE-22, CWE-78, CWE-798
- Create path validation utility with 42 tests for CWE-22 protection
- Create PowerShell-to-Python developer migration guide

Part of epic #965.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* feat(python): add pilot migration of Check-SkillExists to Python (ADR-042 Phase 3)

Migrates Check-SkillExists.ps1 to Python as the pilot script for ADR-042 Phase 3.
This demonstrates the migration patterns established in Phase 2.

Changes:
- scripts/check_skill_exists.py: Python port with argparse CLI, type hints,
  ADR-035 exit codes, and path_validation utility usage
- tests/test_check_skill_exists.py: 31 pytest tests with 88% coverage

The Python version provides:
- --list-available: Lists all skills by operation type
- --operation/--action: Checks if a skill exists using substring matching
- --project-root: Optional custom project root for testing

Both PowerShell and Python versions will run in parallel per migration plan.

Refs: #965

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* feat(python): add gradual rollout migrations (ADR-042 Phase 4)

Migrate two additional scripts from PowerShell to Python following
the pilot pattern established in Phase 3:

- Detect-SkillViolation.ps1 -> detect_skill_violation.py
  - 89% test coverage (35 tests)
  - Uses dataclass for Violation type
  - Integrates path_validation utility
  - Non-blocking warning for skill violations

- Validate-SessionJson.ps1 -> validate_session_json.py
  - 91% test coverage (39 tests)
  - Uses ValidationResult dataclass
  - Case-insensitive JSON key lookup
  - Pre-commit mode for compact output

Also fixes uv.lock format (was incorrectly in pip-tools format,
now in native uv format).

See: ADR-042 Python Migration Strategy, Issue #965

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* fix(python): fix regex bug and dead code in detect_skill_violation

- Fixed regex pattern gh\\s\+ to gh\s+ in extract_capability_gaps
- Replaced duplicated capability extraction logic in report_violations
  with call to extract_capability_gaps function (DRY)
- All 34 tests pass

Issues identified by pr-review-toolkit parallel review agents.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* fix(security): address gemini-code-assist security findings

**Security Fixes**:

1. **Path Validation (CWE-22)** - scripts/validate_session_json.py:
   - Added `validate_safe_path` import from scripts.utils.path_validation
   - Validate user-provided session_path before file operations
   - Prevents path traversal attacks (../, symlinks, etc.)

2. **Python Version Alignment** - pyproject.toml:
   - Updated ruff target-version: py310 → py312
   - Updated mypy python_version: 3.10 → 3.12
   - Aligns linting/type checking with project standard (3.12.x)

**Gemini Review Comments Addressed**:
- Comment 2702879539: Added path validation imports ✓
- Comment 2702879541: Added CWE-22 protection with validate_safe_path ✓
- Comment 2702879542: Updated ruff to target py312 ✓
- Comment 2702879543: Updated mypy to python 3.12 ✓

**Testing**:
- Verified imports work correctly
- Path validation prevents traversal attacks
- Session protocol validation: PASS

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* refactor: slim instructions files by removing redundant agent registry (#961)

Remove agent catalog tables and routing heuristics from instruction
file templates. This content is already available in YAML frontmatter
of each agent file, which platforms parse directly.

- Claude: 129 → 45 lines (65% reduction)
- Copilot CLI: 126 → 53 lines (58% reduction)
- VSCode: 116 → 45 lines (61% reduction)

Estimated savings: ~2,000 tokens per session per platform.

Signed-off-by: Richard Murillo <6811113+rjmurillo@users.noreply.github.com>
Co-authored-by: Richard Murillo <richard.murillo@example.com>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Co-authored-by: Richard Murillo <6811113+rjmurillo@users.noreply.github.com>

* docs(analysis): Factory-AI/droid-action security constraint blocker (#960)

* docs(analysis): document Factory-AI/droid-action security constraint blocker

Root cause analysis of Droid Auto Review workflow failure. The Factory-AI/droid-action
internally uses actions/upload-artifact@v4 (non-SHA-pinned), which violates repository
security constraints requiring all actions to be pinned to full-length commit SHAs.

Key findings:
- Latest droid-action version (e3f8be9f, 2026-01-12) still contains non-pinned references
- Repository security rules apply recursively to all nested action dependencies
- No workaround available without modifying third-party action or relaxing security constraints

Impact: BLOCKING - droid-review.yml and droid.yml workflows fail at setup phase

Recommendations:
- File issue with Factory-AI requesting SHA-pinned action references
- Evaluate alternative PR review automation tools
- Document as known limitation in operational runbook

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* docs(session): update session-9 with PR comment responses

- Added workLog entries for PR #960 comment activities
- Documented upstream issue research (no issue exists)
- Added PR comments as deliverables
- Added learning pattern about upstream issue verification

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* docs: record upstream issue Factory-AI/droid-action#20

- Updated memory with upstream issue link and status
- Marked "file upstream issue" as DONE in recommendations
- Updated session log with issue filing activity
- Added next step to monitor for maintainer response

Upstream: Factory-AI/droid-action#20

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

---------

Co-authored-by: rjmurillo-bot <rjmurillo-bot@users.noreply.github.com>
Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
Co-authored-by: Richard Murillo <richard.murillo@example.com>

* fix(ci): disable Droid workflows due to unpinned action (#957)

* chore: recover 650 orphaned session logs and memory files (#964)

* chore: recover 650 orphaned session logs and memory files

Extract artifacts from 52 feature branches that were left behind when
PRs auto-merged before session logs were pushed.

Recovery summary:
- Session logs: 378 files recovered
- Memory files: 272 files recovered
- Total: 650 files, 82,632 lines of content

Analysis found 61,497 file references across branches but only 1,728
unique files (average file in 35+ branches). Of these, 1,080 already
existed in main. The 648 truly orphaned files are now consolidated.

Used consolidated PR approach instead of 52 individual PRs to avoid
massive merge conflicts from overlapping content.

Note: 150 memory files use legacy 'skill-' prefix naming that predates
ADR-017. These are historical artifacts being preserved as-is.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* docs: update session log with PR #964 details

Add PR information and audit trail for validation skip.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

---------

Co-authored-by: rjmurillo-bot <noreply@github.com>
Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>

* feat: implement investigation-only session validator (ADR-034 Phase 1) (#931)

* Initial plan

* Add comprehensive test suite for investigation-only validation

Co-authored-by: rjmurillo <6811113+rjmurillo@users.noreply.github.com>

* fix: convert functional tests to pattern-based tests to avoid git state dependency

Co-authored-by: rjmurillo <6811113+rjmurillo@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: rjmurillo <6811113+rjmurillo@users.noreply.github.com>

* fix(validation): Allow .agents/memory/ in investigation-only sessions (#926)

* Initial plan

* feat: Add .agents/memory/ to investigation allowlist

Add .agents/memory/ pattern to investigation-only allowlist in Test-InvestigationEligibility.ps1 scripts and update tests. This allows memory infrastructure files like causal-graph.json to be committed in investigation sessions per ADR-034 memory-first principle.

Co-authored-by: rjmurillo <6811113+rjmurillo@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: rjmurillo <6811113+rjmurillo@users.noreply.github.com>

* feat: Add verification-based session-start gates for Codex effectiveness (#924)

* Initial plan

* docs: add Codex effectiveness backlog and context optimization plan (Phase 1 complete)

Co-authored-by: rjmurillo <6811113+rjmurillo@users.noreply.github.com>

* feat: add Codex session-start gate script with 4 verification gates (Phase 2 complete)

Co-authored-by: rjmurillo <6811113+rjmurillo@users.noreply.github.com>

* Changes before error encountered

Co-authored-by: rjmurillo <6811113+rjmurillo@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: rjmurillo <6811113+rjmurillo@users.noreply.github.com>
Co-authored-by: Richard Murillo <richard.murillo@example.com>
Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>

* docs: standardize YAML array format for cross-platform compatibility (#923)

* Initial plan

* refactor: convert frontmatter to block-style YAML arrays in prompt and command files

Co-authored-by: rjmurillo <6811113+rjmurillo@users.noreply.github.com>

* docs: update frontmatter examples to use block-style YAML arrays

Co-authored-by: rjmurillo <6811113+rjmurillo@users.noreply.github.com>

* docs(governance): add YAML frontmatter array format constraint

- Add YAML Frontmatter Constraints section to PROJECT-CONSTRAINTS.md
- Include rationale with evidence from Session 826 RCA and GitHub Copilot CLI Issue #694
- Add validation checklist item for frontmatter arrays
- Add frontmatter validation requirement to SKILL-CREATION-CRITERIA.md
- Create session log for session 02

Refs: #898, Session 826

* docs: add issue URLs to YAML array format references

Co-authored-by: rjmurillo <6811113+rjmurillo@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: rjmurillo <6811113+rjmurillo@users.noreply.github.com>
Co-authored-by: Richard Murillo <richard.murillo@example.com>
Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>

* docs: improve autonomous-issue-development.md structure (#566)

* docs: improve autonomous-issue-development.md structure

Expand documentation from 46 to 441 lines to match autonomous-pr-monitor.md style:

- Add "Common Development Patterns" section (5 validated patterns)
- Add "Troubleshooting" section (5 common scenarios)
- Enhance "Example Session Output" with TodoWrite and agent handoffs
- Add "Workflow Phases" table for quick reference
- Add "Agent Responsibilities" reference table
- Add "Prerequisites" and "Related Documentation" sections

Closes #506

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* fix(session): add protocol compliance sections

Added Session Start and Session End checklist tables to match
the required session protocol format.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* fix(security): prevent command injection in PR creation example

Addresses gemini-code-assist[bot] security review comment #2653014226.

The example showed a hardcoded PR title which could enable command
injection if autonomous agents construct titles from untrusted GitHub
issue titles containing shell metacharacters (e.g., $(reboot)).

Changes:
- Add security warning comment explaining CWE-78 risk
- Use read -r with process substitution to safely read issue title
- Demonstrate secure pattern for handling untrusted external input

This aligns with security principle of validating all external inputs.

Comment-ID: 2653014226

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

---------

Co-authored-by: rjmurillo[bot] <rjmurillo-bot@users.noreply.github.com>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Co-authored-by: Claude <claude@anthropic.com>

* feat: implement local GitHub Actions validation and testing infrastructure (#925)

* Initial plan

* feat: Add actionlint validation for GitHub Actions workflows (Phase 1)

- Add actionlint to pre-commit hook (.githooks/pre-commit)
- Integrate actionlint into unified validation runner (scripts/Validate-PrePR.ps1)
- Add actionlint to Worktrunk pre-merge hooks (.config/wt.toml)
- Update SHIFT-LEFT.md documentation with workflow YAML validation section
- Update validation sequence to include step 3.5 (Workflow YAML)
- Create session log 2026-01-15-session-01-github-actions-local-testing.json

This implements Phase 1 (P0) of the GitHub Actions local testing epic.
actionlint catches 80%+ workflow YAML errors before push, reducing expensive CI iteration cycles.

Co-authored-by: rjmurillo <6811113+rjmurillo@users.noreply.github.com>

* feat: Add act support for local workflow testing (Phase 2)

- Create .actrc configuration with optimized defaults for act
- Create scripts/Test-WorkflowLocally.ps1 PowerShell wrapper for act
- Update SHIFT-LEFT.md with comprehensive local workflow testing documentation
- Document supported workflows (pester-tests, validate-paths, memory-validation)
- Document unsupported workflows (AI-dependent: ai-session-protocol, etc.)
- Add troubleshooting guide for act and PowerShell issues

This implements Phase 2 (P1) of the GitHub Actions local testing epic.
Enables local testing for PowerShell-only workflows without CI round-trips.

Co-authored-by: rjmurillo <6811113+rjmurillo@users.noreply.github.com>

* feat: Add yamllint for YAML style validation (Phase 3)

- Create .yamllint.yml configuration with GitHub Actions-optimized rules
- Add yamllint validation to scripts/Validate-PrePR.ps1 (validation 3.9)
- Add yamllint to pre-commit hook (.githooks/pre-commit) as non-blocking warnings
- Update SHIFT-LEFT.md with YAML style validation documentation
- Document yamllint vs actionlint relationship (style vs semantics)
- Configure yamllint as non-blocking to avoid impeding development velocity

This implements Phase 3 (P2) of the GitHub Actions local testing epic.
yamllint enforces YAML style consistency while actionlint handles semantic validation.

Co-authored-by: rjmurillo <6811113+rjmurillo@users.noreply.github.com>

* docs: Update session log with completion status

* fix: Address PR feedback on local testing infrastructure

- Add gh act extension to installation instructions
- Include .github/actions in actionlint validation scope
- Remove chocolatey recommendation, use GitHub releases instead
- Clarify Copilot CLI installation vs BOT_PAT requirement for AI workflows
- Switch to full production images in .actrc for maximum compatibility
- Update documentation to reflect full image usage and rationale

Addresses comments: 2693400619, 2693406075, 2693409506, 2693411769, 2693418268

Co-authored-by: rjmurillo <6811113+rjmurillo@users.noreply.github.com>

* refactor: Move Test-WorkflowLocally.ps1 to .claude/skills/github/scripts

- Move Test-WorkflowLocally.ps1 from scripts/ to .claude/skills/github/scripts/
- Update all documentation references in SHIFT-LEFT.md
- Update session log to reflect new location

Addresses comment 2699896328

Co-authored-by: rjmurillo <6811113+rjmurillo@users.noreply.github.com>

* fix: address all PR #925 review comments

Fixes all 15 unresolved review threads from owner and automated reviewers:

1. Remove duplicate actionlint validation block in pre-commit hook
   - Kept newer comprehensive version (validates workflows + actions)
   - Removed old TIER 1 block (lines 269-313)

2. Fix wt.toml to validate both workflows and actions directories
   - Changed: actionlint .github/workflows/*.yml .github/actions/*.yml
   - Matches pre-commit hook validation scope

3. Remove Windows-specific chocolatey references
   - Prioritize cross-platform gh extension
   - Show macOS brew as alternative
   - Link to releases for manual download

4. Rename Write-Warning to Write-WarningMessage
   - Avoids shadowing PowerShell built-in cmdlet
   - Updated all call sites

5. Fix Validate-PrePR.ps1 to match both .yml and .yaml files
   - Changed -Filter to -Include with both extensions
   - Applies to both workflow and YAML validation sections

6. Fix session log field name inconsistencies
   - Changed handoffNotUpdated.evidence -> Evidence
   - Changed handoffNotUpdated.complete -> Complete
   - Matches other compliance entries

7. Add endingCommit to session log
   - Set to 38217dc (latest commit)
   - Required field per session protocol

8. Fix Test-WorkflowLocally.ps1 null handling
   - Check for null before Test-Path call
   - Prevents crash under Set-StrictMode when workflow not found

All fixes maintain existing functionality while addressing review feedback.

Related: #925

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: rjmurillo <6811113+rjmurillo@users.noreply.github.com>
Co-authored-by: Richard Murillo <richard.murillo@example.com>
Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>

* fix: ADR-017 memory validation compliance (skill- prefix removal + bundled skill splitting) (#966)

* fix(pr-964): clean up session files and remove skill- prefix violations

Addresses two validation failures in PR #964:

1. Session file cleanup:
   - Moved 341 .md session files to .agents/archive/sessions/
   - Deleted 1 session file already in archive
   - All moved files have corresponding JSON equivalents

2. Memory file ADR-017 compliance:
   - Removed 87 duplicate memory files with skill- prefix
   - Renamed 56 unique memory files to remove skill- prefix
   - Zero skill- prefixed files remain
   - Added skills-serena-index to memory-index.md

These legacy files predate ADR-017 naming conventions and were
recovered from 52 orphaned branches. The skill- prefixed duplicates
existed alongside non-prefixed versions and have been cleaned up.

Note: Bundled skill validation failures are pre-existing in PR #964
and require separate handling via skill unbundling process.

Script: scripts/Fix-PR964-Validation.ps1

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* refactor: split 37 bundled skill files into 135 atomic files per ADR-017

Split bundled skill files to comply with one-skill-per-file standard.

Changes:
- Created scripts/Split-BundledSkills.ps1 automation script
- Split 37 bundled files containing 135 skills total
- Generated 110 new atomic skill files with proper naming
- Modified 25 existing skill files
- Deleted 37 bundled files

Validation:
- Validate-SkillFormat.ps1: PASSED
- markdownlint: PASSED (0 errors)

Context: PR #964 recovered orphaned files that predate ADR-017
Note: Memory index will be updated in a follow-up commit

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* docs: update session log to JSON schema v1.0

Update session-04 log to use new JSON schema format with protocolCompliance
and learnings sections per SESSION-PROTOCOL.md requirements.

Validation: Validate-SessionJson.ps1 PASSED

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* fix: convert skills-serena-index to table-only format per ADR-017

---------

Co-authored-by: rjmurillo-bot <noreply@github.com>
Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>

* fix(ci): use PATH export instead of source env for uv

The uv installer no longer creates an env file to source. Replace
`source $HOME/.local/bin/env` with `export PATH="$HOME/.local/bin:$PATH"`
to properly add uv to PATH in GitHub Actions workflows.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* fix(ci): add --system flag to uv pip install

uv pip now requires either a virtual environment or the --system flag
to install packages. Add --system flag for GitHub Actions workflows
where we want to install directly to the system Python.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* feat(ci): enable Python tooling for agent contributions

- Add Python setup to setup-code-env composite action with:
  - enable-python and python-version inputs
  - Python version output
  - Python dependency installation via uv
  - Verification of ruff and pytest availability
- Enable Python 3.12 in copilot-setup-steps workflow
- Add Python dependency installation to bootstrap-vm.sh

This enables agents to contribute Python code with proper
tooling (ruff, pytest) available in the development environment.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* fix(ci): use pip-audit without --requirement flag

The --requirement flag expects requirements.txt format, not pyproject.toml.
Running pip-audit without arguments audits installed packages instead.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* fix(tests): patch SAFE_BASE_DIR for temp directory tests

- Monkeypatch _PROJECT_ROOT in validate_session_json tests
- Monkeypatch SAFE_BASE_DIR in invoke_skill_learning tests
- Fix tests checking 'extracted_learning' to use 'source' key

The path validation correctly rejects temp directories outside
project root. Tests now patch the base directory to allow temp
paths during testing while maintaining security in production.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* fix(hooks): rename test_skill_context to check_skill_context

Pytest was collecting the function as a test because it started
with 'test_'. Renamed to 'check_skill_context' to prevent pytest
from treating it as a test function.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* docs: add test exit code interpretation as blocking constraint

- Add testing-exit-code-interpretation memory documenting that pytest
  "X passed, Y errors" output means test suite FAILED (non-zero exit)
- Update AGENTS.md Testing section with BLOCKING Test Exit Code
  Interpretation subsection
- Update CRITICAL-CONTEXT.md with explicit test exit code requirement
- Update memory-index with new memory for discoverability

Learning: "error" and "failed" are both non-pass outcomes in pytest.
Both result in non-zero exit code and must block commits.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

---------

Signed-off-by: Richard Murillo <6811113+rjmurillo@users.noreply.github.com>
Co-authored-by: Test <test@test.com>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Co-authored-by: Richard Murillo <richard.murillo@example.com>
Co-authored-by: Richard Murillo <6811113+rjmurillo@users.noreply.github.com>
Co-authored-by: rjmurillo-bot <rjmurillo-bot@users.noreply.github.com>
Co-authored-by: rjmurillo-bot <noreply@github.com>
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Claude <claude@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area-installation Installation scripts area-prompts Agent prompts and templates area-workflows GitHub Actions workflows automation Automated workflows and processes github-actions GitHub Actions workflow updates

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants