fix: address AI-signatures in code (issue #12)#16
fix: address AI-signatures in code (issue #12)#16edithatogo wants to merge 78 commits intoblader:mainfrom
Conversation
…apters.py' as complete
…idate_adapters.py' as complete
…all_adapters.py' as complete
There was a problem hiding this comment.
Pull request overview
This PR turns the Humanizer skill into a more structured, multi-agent package with professional and standard variants, adds a new “AI signatures in code” pattern, and introduces automation and quality tooling (Python scripts, tests, pre-commit, CI, and Vale styles) around adapters and documentation.
Changes:
- Add a professional Humanizer variant (
SKILL_PROFESSIONAL.md) and modularize the skill content into headers + core patterns used to generate both standard and pro versions. - Build out a full adapter ecosystem (Codex CLI, Gemini CLI, Google Antigravity skills/rules/workflows, VS Code, Qwen CLI, GitHub Copilot) plus sync/validate/install scripts in PowerShell and Python, with conductor tracks documenting the workflow.
- Introduce DevOps/tooling: strict Ruff+Mypy config, pytest with 100% coverage for adapter scripts, pre-commit (including Vale and markdownlint), CI via GitHub Actions, and Vale style packages (Google and Microsoft) to enforce prose quality.
Reviewed changes
Copilot reviewed 163 out of 165 changed files in this pull request and generated 9 comments.
Show a summary per file
| File | Description |
|---|---|
| tests/test_validate_adapters.py | Unit tests for Python adapter validation CLI and metadata checks. |
| tests/test_sync_adapters.py | Unit tests for Python sync script, including version parsing and logging paths. |
| tests/test_install_adapters.py | Unit tests for Python install script, covering success, missing sources, validation, and failure modes. |
| tests/init.py | Marks the tests package with a brief description. |
| styles/Microsoft/meta.json | Registers Microsoft Vale style feed and version constraint. |
| styles/Microsoft/Wordiness.yml | Microsoft Vale rule to suggest simpler, less wordy phrasing. |
| styles/Microsoft/We.yml | Microsoft Vale rule discouraging first-person plural usage. |
| styles/Microsoft/Vocab.yml | Microsoft Vale rule to flag terms that need verification against the A–Z word list. |
| styles/Microsoft/Units.yml | Microsoft Vale rule enforcing numeric units formatting. |
| styles/Microsoft/URLFormat.yml | Microsoft Vale rule preferring “URL of” over “URL for”. |
| styles/Microsoft/Terms.yml | Microsoft Vale substitutions for preferred Microsoft terminology (e.g., adapter vs adaptor). |
| styles/Microsoft/Suspended.yml | Microsoft Vale rule against suspended hyphen constructions. |
| styles/Microsoft/Spacing.yml | Microsoft Vale rule about sentence spacing around punctuation. |
| styles/Microsoft/SentenceLength.yml | Microsoft Vale rule to warn about long sentences (>30 words). |
| styles/Microsoft/Semicolon.yml | Microsoft Vale suggestion to simplify semicolon-heavy sentences. |
| styles/Microsoft/RangeTime.yml | Microsoft Vale rule to replace dashes in time ranges with “to”. |
| styles/Microsoft/Quotes.yml | Microsoft Vale rule enforcing punctuation placement inside quotes. |
| styles/Microsoft/Plurals.yml | Microsoft Vale rule against “(s)/(es)” optional plurals. |
| styles/Microsoft/Percentages.yml | Microsoft Vale rule to use numeric percentages. |
| styles/Microsoft/Passive.yml | Microsoft Vale rule flagging likely passive constructions. |
| styles/Microsoft/OxfordComma.yml | Microsoft Vale rule suggesting Oxford comma usage. |
| styles/Microsoft/Ordinal.yml | Microsoft Vale rule against “firstly/secondly/thirdly”. |
| styles/Microsoft/Negative.yml | Microsoft Vale rule enforcing en dashes for negative numbers. |
| styles/Microsoft/Hyphens.yml | Microsoft Vale rule discouraging unnecessary hyphens after adverbs. |
| styles/Microsoft/Headings.yml | Microsoft Vale capitalization rule for headings. |
| styles/Microsoft/HeadingPunctuation.yml | Microsoft Vale rule removing end punctuation from headings. |
| styles/Microsoft/HeadingColons.yml | Microsoft Vale rule to capitalize after colons in headings. |
| styles/Microsoft/HeadingAcronyms.yml | Microsoft Vale rule warning about acronyms in headings. |
| styles/Microsoft/GeneralURL.yml | Microsoft Vale rule preferring “address” over “URL” for general audiences. |
| styles/Microsoft/GenderBias.yml | Microsoft Vale substitutions for gender-biased terms. |
| styles/Microsoft/Gender.yml | Microsoft Vale rule disallowing “he/she” and “s/he”. |
| styles/Microsoft/Foreign.yml | Microsoft Vale rule translating Latin abbreviations (e.g., e.g. → “for example”). |
| styles/Microsoft/FirstPerson.yml | Microsoft Vale rule warning on first-person singular usage. |
| styles/Microsoft/Ellipses.yml | Microsoft Vale rule discouraging ellipses. |
| styles/Microsoft/DateOrder.yml | Microsoft Vale rule against numeric-only dates. |
| styles/Microsoft/DateNumbers.yml | Microsoft Vale rule against ordinal dates with month names. |
| styles/Microsoft/DateFormat.yml | Microsoft Vale rule enforcing a standard date format. |
| styles/Microsoft/Dashes.yml | Microsoft Vale rule about spacing around em/en dashes. |
| styles/Microsoft/Contractions.yml | Microsoft Vale substitutions encouraging contractions. |
| styles/Microsoft/Avoid.yml | Microsoft Vale rule banning specific disfavored terms. |
| styles/Microsoft/Auto.yml | Microsoft Vale rule discouraging hyphenated “auto-” forms. |
| styles/Microsoft/Adverbs.yml | Microsoft Vale rule warning on often-unnecessary adverbs. |
| styles/Microsoft/Acronyms.yml | Microsoft Vale conditional rule enforcing acronym definitions. |
| styles/Microsoft/Accessibility.yml | Microsoft Vale rule around disability-inclusive language. |
| styles/Microsoft/AMPM.yml | Microsoft Vale rule enforcing spacing and capitalization for AM/PM. |
| styles/Google/vocab.txt | Placeholder vocabulary file to support Google Vale styles. |
| styles/Google/meta.json | Registers Google Vale style feed and version constraint. |
| styles/Google/WordList.yml | Google Vale substitutions aligning terms with the Google word list. |
| styles/Google/Will.yml | Google Vale rule discouraging “will”. |
| styles/Google/We.yml | Google Vale rule discouraging first-person plural. |
| styles/Google/Units.yml | Google Vale rule enforcing spacing between numbers and units. |
| styles/Google/Spelling.yml | Google Vale rule favoring US spellings. |
| styles/Google/Spacing.yml | Google Vale rule enforcing one-space sentence spacing. |
| styles/Google/Slang.yml | Google Vale rule banning slang abbreviations (tl;dr, imo, etc.). |
| styles/Google/Semicolons.yml | Google Vale guidance on semicolon usage. |
| styles/Google/Ranges.yml | Google Vale rule about phrasing numeric ranges. |
| styles/Google/Quotes.yml | Google Vale rule for punctuation inside quotes. |
| styles/Google/Periods.yml | Google Vale rule against dotted acronyms. |
| styles/Google/Passive.yml | Google Vale rule discouraging passive voice. |
| styles/Google/Parens.yml | Google Vale suggestion to limit parentheses. |
| styles/Google/OxfordComma.yml | Google Vale suggestion to use Oxford commas. |
| styles/Google/Ordinal.yml | Google Vale rule about ordinal numbers. |
| styles/Google/OptionalPlurals.yml | Google Vale rule against optional “(s)” plurals. |
| styles/Google/LyHyphens.yml | Google Vale rule against adverb-based hyphenations. |
| styles/Google/Latin.yml | Google Vale substitutions for Latin abbreviations. |
| styles/Google/Headings.yml | Google Vale capitalization rules for headings. |
| styles/Google/HeadingPunctuation.yml | Google Vale rule against trailing periods in headings. |
| styles/Google/GenderBias.yml | Google Vale substitutions for gender-biased terms. |
| styles/Google/Gender.yml | Google Vale rule against certain gendered pronoun forms. |
| styles/Google/FirstPerson.yml | Google Vale rule discouraging first-person singular. |
| styles/Google/Exclamation.yml | Google Vale rule removing exclamation marks. |
| styles/Google/EmDash.yml | Google Vale rule removing spaces around dashes. |
| styles/Google/Ellipses.yml | Google Vale rule discouraging ellipses. |
| styles/Google/DateFormat.yml | Google Vale acceptable date format rules. |
| styles/Google/Contractions.yml | Google Vale suggestions encouraging contractions. |
| styles/Google/Colons.yml | Google Vale rules around capitalization after colons. |
| styles/Google/Acronyms.yml | Google Vale conditional rule for acronym definitions. |
| styles/Google/AMPM.yml | Google Vale AM/PM formatting rules. |
| src/pro_header.md | Frontmatter and header text for the professional Humanizer variant. |
| src/human_header.md | Frontmatter and header text for the standard Humanizer variant. |
| src/core_patterns.md | Shared core AI-writing patterns (including new Pattern #25 for code) used by both variants. |
| src/core_frontmatter.yaml | Shared allowed-tools frontmatter fragment for both skills. |
| scripts/validate_adapters.py | Python CLI to validate adapter metadata against the canonical skill file. |
| scripts/validate-adapters.ps1 | PowerShell script to validate all adapter files and their metadata. |
| scripts/validate-adapters.cmd | Windows wrapper to run the PowerShell adapter validator. |
| scripts/sync_adapters.py | Python sync script to propagate version/date and content to selected adapters. |
| scripts/sync-adapters.ps1 | PowerShell script to compile skills from src/ and sync all adapter metadata. |
| scripts/sync-adapters.cmd | Windows wrapper to run the PowerShell sync script. |
| scripts/install_adapters.py | Python installer script to validate and copy adapters into user/workspace locations. |
| scripts/install-adapters.ps1 | PowerShell installer for all adapters with optional validation. |
| scripts/install-adapters.cmd | Windows wrapper to run the PowerShell installer. |
| scripts/init.py | Package marker for the scripts module. |
| pyproject.toml | Project metadata plus Ruff, Mypy, pytest, and coverage configuration (100% threshold). |
| pr11.json | Snapshot of a previous PR’s metadata for conductor/history. |
| conductor/workflow.md | Detailed conductor workflow describing task/phase lifecycle, verification, and checkpointing. |
| conductor/tracks/universal-automated-adapters_20260131/spec.md | Spec for automating adapter sync/validate/install across environments. |
| conductor/tracks/universal-automated-adapters_20260131/plan.md | Plan for the universal automated adapters track (phases and tasks). |
| conductor/tracks/universal-automated-adapters_20260131/metadata.json | Metadata for the universal automated adapters track (currently marked planned). |
| conductor/tracks/humanizer-adapters_20260125/spec.md | Spec for initial multi-agent adapter build around SKILL.md. |
| conductor/tracks/humanizer-adapters_20260125/plan.md | Plan for multi-agent adapter work, including checkpoints. |
| conductor/tracks/humanizer-adapters_20260125/metadata.json | Metadata for the original adapters track (archived). |
| conductor/tracks/humanizer-adapters_20260125/inventory.md | Inventory of target environments and adapter formats. |
| conductor/tracks/humanizer-adapters_20260125/adapter-metadata.md | Shared adapter metadata contract documentation. |
| conductor/tracks/humanizer-adapters_20260125/adapter-core.md | Shared adapter instruction core text. |
| conductor/tracks/gemini-extension_20260131/spec.md | Spec for the Gemini CLI Humanizer extension. |
| conductor/tracks/gemini-extension_20260131/requirements.md | Summarized Gemini extension requirements. |
| conductor/tracks/gemini-extension_20260131/plan.md | Plan and checkpoints for Gemini extension implementation. |
| conductor/tracks/gemini-extension_20260131/metadata.json | Metadata for the Gemini extension track (in progress). |
| conductor/tracks/gemini-extension_20260131/metadata-contract.md | Notes on reusing adapter metadata contract for the extension. |
| conductor/tracks/gemini-extension_20260131/layout.md | Chosen folder/layout for the Gemini extension. |
| conductor/tracks/gemini-extension_20260131/implementation.md | Implementation notes for Gemini extension artifacts. |
| conductor/tracks/devops-quality_20260131/spec.md | Spec for DevOps and quality engineering (linting, tests, CI). |
| conductor/tracks/devops-quality_20260131/plan.md | Plan and checkpoints for DevOps/quality work (Python tooling, CI). |
| conductor/tracks/devops-quality_20260131/metadata.json | Metadata for the DevOps track (archived). |
| conductor/tracks/antigravity-skills_20260131/spec.md | Spec for the Antigravity skill adapter. |
| conductor/tracks/antigravity-skills_20260131/plan.md | Plan for Antigravity skill packaging. |
| conductor/tracks/antigravity-skills_20260131/metadata.json | Metadata for the Antigravity skill track. |
| conductor/tracks/antigravity-rules-workflows_20260131/spec.md | Spec for Antigravity rules/workflows guidance. |
| conductor/tracks/antigravity-rules-workflows_20260131/plan.md | Plan for Antigravity rule/workflow templates. |
| conductor/tracks/antigravity-rules-workflows_20260131/metadata.json | Metadata for the Antigravity rules/workflows track. |
| conductor/tracks/adapters-expansion_20260131/spec.md | Spec to expand adapters to Qwen CLI and Copilot. |
| conductor/tracks/adapters-expansion_20260131/plan.md | Plan for Qwen/Copilot adapter expansion. |
| conductor/tracks/adapters-expansion_20260131/metadata.json | Metadata for adapters expansion track (currently planned). |
| conductor/tracks.md | Top-level registry listing all tracks and their archived status. |
| conductor/tech-stack.md | Tech stack summary for the Humanizer multi-agent project. |
| conductor/setup_state.json | Conductor setup state marker. |
| conductor/product.md | Product-level overview and goals for Humanizer as a multi-agent skill pack. |
| conductor/product-guidelines.md | Product guidelines for Humanizer behavior (voice-matching, constraints). |
| conductor/code_styleguides/typescript.md | Summary of Google TypeScript style rules. |
| conductor/code_styleguides/javascript.md | Summary of Google JavaScript style rules. |
| conductor/code_styleguides/general.md | General cross-language code style principles. |
| adapters/vscode/humanizer.code-snippets | Workspace VS Code snippet for injecting Humanizer instructions. |
| adapters/gemini-extension/gemini-extension.json | Manifest for the Gemini CLI Humanizer extension. |
| adapters/gemini-extension/commands/humanizer/humanize.toml | Saved Gemini CLI command prompt to run the Humanizer. |
| adapters/gemini-extension/GEMINI_PRO.md | Gemini extension context file for the pro Humanizer variant with metadata. |
| adapters/antigravity-skill/README.md | README for the Antigravity Humanizer skill adapter. |
| adapters/antigravity-rules-workflows/workflows/humanize.md | Antigravity workflow template for humanizing text. |
| adapters/antigravity-rules-workflows/rules/humanizer.md | Antigravity rule template to avoid AI-ish patterns. |
| adapters/VERSIONING.md | Documentation for adapter versioning and last_synced semantics. |
| WARP.md | Updated WARP guidance including small formatting tweaks. |
| SKILL_PROFESSIONAL.md | Canonical professional Humanizer skill file assembled from src/. |
| SKILL.md | Canonical standard Humanizer skill, updated for pattern #25 and minor formatting. |
| README.md | Expanded README with multi-agent usage, sync/validate/install instructions, and pro variant. |
| AGENTS.md | Codex CLI adapter file containing adapter metadata and core instructions. |
| .vscode/humanizer.code-snippets | Checked-in VS Code snippet copy for the repo workspace. |
| .vale.ini | Vale configuration enabling Google and Microsoft style packages. |
| .pre-commit-config.yaml | Pre-commit hooks for Vale, Ruff, Mypy, markdownlint, and basic hygiene checks. |
| .markdownlint.yaml | Markdownlint configuration tuning specific rules. |
| .gitignore | Ignore rules for Python caches, coverage, and OS cruft. |
| .github/workflows/ci.yml | CI workflow running pre-commit and pytest (with coverage) on PRs/pushes. |
| .agent/workflows/humanize.md | Example Antigravity workflow checked into .agent. |
| .agent/skills/humanizer/SKILL_PROFESSIONAL.md | Checked-in Antigravity skill copy for the pro variant with adapter metadata. |
| .agent/skills/humanizer/README.md | Antigravity skill README mirrored under .agent. |
| .agent/rules/humanizer.md | Checked-in example Antigravity Humanizer rule under .agent/rules. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| adapters = [ | ||
| "AGENTS.md", | ||
| "adapters/gemini-extension/GEMINI.md", | ||
| "adapters/vscode/HUMANIZER.md", | ||
| "adapters/antigravity-skill/SKILL.md", | ||
| "adapters/antigravity-rules-workflows/README.md", | ||
| "adapters/qwen-cli/QWEN.md", | ||
| "adapters/copilot/COPILOT.md", | ||
| ] |
There was a problem hiding this comment.
The adapter list here only validates a subset of adapters (e.g., it omits SKILL_PROFESSIONAL.md, adapters/gemini-extension/GEMINI_PRO.md, and the committed .agent skill copies), while scripts/validate-adapters.ps1 validates a broader set. This divergence means Python-based validation (including install_adapters.py) can pass even when some adapters are out of sync, which undermines the "single source of truth" drift-control intent; consider centralizing the adapter inventory so the Python and PowerShell validators check the same set.
| - name: Install dependencies | ||
| run: | | ||
| python -m pip install --upgrade pip | ||
| python -m pip install pytest pytest-cov ruff mypy pre-commit | ||
|
|
||
| - name: Run pre-commit | ||
| run: pre-commit run --all-files |
There was a problem hiding this comment.
This workflow runs pre-commit run --all-files, and the configured hooks include a local vale hook with language: system, but the CI setup does not install the vale binary. On a fresh ubuntu-latest runner this will cause the pre-commit step to fail with a missing command error; you likely need to add an explicit installation step for Vale (or drop the system-level hook from CI) so the pipeline is reliable.
| { | ||
| "track_id": "adapters-expansion_20260131", | ||
| "name": "Expand Humanizer adapters to Qwen CLI and Copilot", | ||
| "status": "planned", | ||
| "created_at": "2026-01-31" |
There was a problem hiding this comment.
This track metadata still marks the status as "planned", but conductor/tracks.md lists "Expand Humanizer adapters to Qwen CLI and Copilot" under Archived Tracks. To keep the Conductor metadata consistent, consider updating the status field here to "archived" (or otherwise match the state recorded in conductor/tracks.md).
| # Define paths | ||
| root = Path(__file__).parent.parent | ||
| adapters = root / "adapters" | ||
|
|
||
| # 1. Antigravity Skill | ||
| sync_antigravity_skill( | ||
| source_path, adapters / "antigravity-skill" / "SKILL.md", version, today | ||
| ) | ||
|
|
||
| # 2. Gemini Extension | ||
| update_metadata(adapters / "gemini-extension" / "GEMINI.md", version, today) | ||
|
|
||
| # 3. Antigravity Rules Metadata | ||
| update_metadata( | ||
| adapters / "antigravity-rules-workflows" / "README.md", version, today | ||
| ) | ||
|
|
||
| # 4. Qwen CLI Metadata | ||
| update_metadata(adapters / "qwen-cli" / "QWEN.md", version, today) | ||
|
|
||
| # 5. Copilot Metadata | ||
| update_metadata(adapters / "copilot" / "COPILOT.md", version, today) | ||
|
|
||
| # 6. VS Code Metadata | ||
| update_metadata(adapters / "vscode" / "HUMANIZER.md", version, today) |
There was a problem hiding this comment.
The Python sync script only updates a subset of adapters (Antigravity SKILL, Gemini standard GEMINI.md, Antigravity rules README, Qwen, Copilot, VS Code), whereas scripts/sync-adapters.ps1 also compiles both standard and professional skills and syncs additional adapter variants. Given the docstring and the DevOps track goal of porting the PowerShell sync behavior to Python, this mismatch can cause drift between the two sync paths; consider centralizing the adapter list so both scripts update the same set of artifacts.
scripts/sync_adapters.py
Outdated
| version = get_skill_version(source_path) | ||
| except (FileNotFoundError, ValueError) as e: | ||
| logger.error("Error: %s", e) # noqa: TRY400 | ||
| return |
There was a problem hiding this comment.
In the error handling for get_skill_version, the script logs the error but then returns from main() without setting a non-zero exit code. For a CLI-style sync script this makes failures (missing or malformed SKILL.md) indistinguishable from success to callers or CI tooling; consider calling sys.exit(1) here (as in validate_adapters.main) so automated workflows can detect and fail on sync errors.
| # 3. Google Antigravity (Workspace) | ||
| adapters = root / "adapters" | ||
| install_file( | ||
| adapters / "antigravity-skill" / "SKILL.md", | ||
| root / ".agent" / "skills" / "humanizer", | ||
| "SKILL.md", | ||
| ) | ||
| install_file( | ||
| adapters / "antigravity-skill" / "README.md", | ||
| root / ".agent" / "skills" / "humanizer", | ||
| "README.md", | ||
| ) | ||
| install_file( | ||
| adapters / "antigravity-rules-workflows" / "rules" / "humanizer.md", | ||
| root / ".agent" / "rules", | ||
| "humanizer.md", | ||
| ) | ||
| install_file( | ||
| adapters / "antigravity-rules-workflows" / "workflows" / "humanize.md", | ||
| root / ".agent" / "workflows", | ||
| "humanize.md", | ||
| ) |
There was a problem hiding this comment.
The installation script only installs the standard Antigravity skill (SKILL.md) and omits the professional variant (SKILL_PROFESSIONAL.md), even though the PowerShell installer handles both. This inconsistency between the PowerShell and Python installers can lead to surprising behavior for users who expect the "Universal Installation" path to provision both standard and professional Antigravity skills; consider adding an install step for the pro skill here to keep the installers aligned.
AGENTS.md
Outdated
| - **Standard** ([SKILL.md](file:///c:/Users/60217257/repos/humanizer/SKILL.md)): Focuses on "Personality and Soul". Best for blogs, creative writing, and emails. | ||
| - **Pro** ([SKILL_PROFESSIONAL.md](file:///c:/Users/60217257/repos/humanizer/SKILL_PROFESSIONAL.md)): Focuses on "Voice and Craft". Best for technical specs, reports, and professional newsletters. | ||
|
|
||
| ## Core Instructions | ||
|
|
||
| You are the Humanizer editor. | ||
|
|
||
| Primary instructions: follow the canonical rules in [SKILL.md](file:///c:/Users/60217257/repos/humanizer/SKILL.md) or [SKILL_PROFESSIONAL.md](file:///c:/Users/60217257/repos/humanizer/SKILL_PROFESSIONAL.md). |
There was a problem hiding this comment.
These links hard-code an absolute Windows path (file:///c:/Users/60217257/repos/humanizer/...), which will be invalid for most users and also exposes a local username. For portability and cleanliness, consider switching these to relative links within the repo (or plain filenames) so the adapter instructions work across environments without leaking local paths.
| - **Standard** ([SKILL.md](file:///c:/Users/60217257/repos/humanizer/SKILL.md)): Focuses on "Personality and Soul". Best for blogs, creative writing, and emails. | |
| - **Pro** ([SKILL_PROFESSIONAL.md](file:///c:/Users/60217257/repos/humanizer/SKILL_PROFESSIONAL.md)): Focuses on "Voice and Craft". Best for technical specs, reports, and professional newsletters. | |
| ## Core Instructions | |
| You are the Humanizer editor. | |
| Primary instructions: follow the canonical rules in [SKILL.md](file:///c:/Users/60217257/repos/humanizer/SKILL.md) or [SKILL_PROFESSIONAL.md](file:///c:/Users/60217257/repos/humanizer/SKILL_PROFESSIONAL.md). | |
| - **Standard** ([SKILL.md](./SKILL.md)): Focuses on "Personality and Soul". Best for blogs, creative writing, and emails. | |
| - **Pro** ([SKILL_PROFESSIONAL.md](./SKILL_PROFESSIONAL.md)): Focuses on "Voice and Craft". Best for technical specs, reports, and professional newsletters. | |
| ## Core Instructions | |
| You are the Humanizer editor. | |
| Primary instructions: follow the canonical rules in [SKILL.md](./SKILL.md) or [SKILL_PROFESSIONAL.md](./SKILL_PROFESSIONAL.md). |
| - [x] Task: Create `pyproject.toml` with strict Ruff and Mypy configurations (ea776e6) | ||
| - [x] Task: Port `sync-adapters.ps1` to `scripts/sync_adapters.py` (c493aef) | ||
| - [x] Task: Port `validate-adapters.ps1` to `scripts/validate_adapters.py` (2c382aa) | ||
| - [x] Task: Port `install-adapters.ps1` to `scripts/install_adapters.py` (13225d5) | ||
| - [x] Task: Conductor - Agent Verification 'Phase 1: Python Migration & Infrastructure' (799280f) | ||
| - [ ] Task: Port `install-adapters.ps1` to `scripts/install_adapters.py` | ||
| - [ ] Task: Conductor - Agent Verification 'Phase 1: Python Migration & Infrastructure' |
There was a problem hiding this comment.
Phase 1 lists the "Port install-adapters.ps1 to scripts/install_adapters.py" and corresponding Conductor verification tasks twice (once as completed and again as pending). This duplication makes the plan misleading about the current state of the work; consider removing the duplicated unchecked tasks or updating their status so each task appears only once with the correct completion state.
| { | ||
| "track_id": "universal-automated-adapters_20260131", | ||
| "name": "Universal Automated Adapters", | ||
| "status": "planned", | ||
| "created_at": "2026-01-31" |
There was a problem hiding this comment.
This track metadata still marks the status as "planned", but conductor/tracks.md lists "Universal Automated Adapters" under Archived Tracks. To avoid confusion about whether this track is still active, consider updating the status here to "archived" (or otherwise aligning it with the top-level tracks registry).
Closes #12.
Adds Pattern #25 to detect and remove AI-generated signatures and redundant comments in code blocks.