Skip to content

Add Invoke-NovaAgenticCopilotScaffold and % nova copilot for applying/updating the Agentic Copilot scaffold in existing projects #212

Description

@stiwicourage

Summary

Add a dedicated Nova workflow that applies or refreshes the Agentic Copilot scaffold in an existing PowerShell project.

This should support both:

  • projects that do not yet have the Nova Agentic Copilot scaffold
  • projects that already have an older scaffold version and need to refresh to the latest Nova scaffold

Problem

Today Nova can scaffold Agentic Copilot guidance during Initialize-NovaModule, but it does not provide a supported way to add or refresh that scaffold in an existing project.

Users should be able to stand in a project root and run a Nova command that applies the latest scaffold safely and explicitly.

Proposed scope

  • add public cmdlet Invoke-NovaAgenticCopilotScaffold
  • add flat CLI command % nova copilot
  • default target path to the current location
  • require ShortName on every run
  • read ProjectName and Description from project.json
  • prompt before overwrite by default
  • allow non-interactive execution only through -OverrideWarning / --override-warning
  • reuse Nova's existing src/resources/agentic-copilot scaffold content and token replacement behavior
  • overwrite only these Nova-managed paths:
    • .github/agents/**
    • .github/instructions/**
    • .github/prompts/**
    • .github/skills/**
    • .github/copilot-instructions.md
    • .github/pull_request_template.md
    • AGENTS.md
    • CONTRIBUTING.md
  • add these files only when missing:
    • README.md
    • CHANGELOG.md
    • RELEASE_NOTE.md

Acceptance criteria

  1. Invoke-NovaAgenticCopilotScaffold -ShortName NMT applies the scaffold in a valid project root after explicit confirmation.
  2. % nova copilot --short-name NMT performs the same workflow from the CLI.
  3. Existing managed Agentic Copilot scaffold files are refreshed from the latest Nova scaffold.
  4. Existing README.md, CHANGELOG.md, and RELEASE_NOTE.md are not overwritten.
  5. Missing README.md, CHANGELOG.md, and RELEASE_NOTE.md are created.
  6. The command fails clearly when project.json is missing or invalid.
  7. The command fails clearly when ShortName is missing or invalid.
  8. -OverrideWarning / --override-warning skips the prompt.
  9. The change includes source-mirrored Pester coverage and CLI routing coverage.
  10. The change updates help and contributor-facing docs as needed.

Implementation notes

  • keep the public cmdlet thin and delegate to private scaffold helpers
  • add a separate scaffold workflow for existing-project apply/update instead of extending Initialize-NovaModule
  • extract reusable Agentic Copilot template logic from the current init-specific helper instead of duplicating it
  • keep the CLI route flat as % nova copilot for now
  • do not persist ShortName in project.json
  • do not infer ShortName from existing scaffold files
  • keep overwrite policy limited to approved Nova-managed scaffold paths

Out of scope

  • storing ShortName in project.json
  • inferring ShortName from existing files
  • selective file-by-file merge/diff workflows
  • nova copilot apply or other future copilot subcommands
  • expanding Nova ownership to arbitrary .github/ content outside the approved path set

Validation and documentation

Expected follow-up work:

  • add/update Pester tests for the public command, scaffold workflow, and CLI route
  • update command help in docs/NovaModuleTools/en-US/
  • review and update README.md
  • review and update CHANGELOG.md
  • review and update RELEASE_NOTE.md

Recommended implementation agent

powershell-developer

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions