Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .github/agents/docs-site.agent.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ Keep the GitHub Pages documentation under `docs/*.html` accurate, user-focused,
- Update `docs/*.html` when end-user workflows, examples, or website wording change.
- Preserve the separation between CLI-oriented website docs and PowerShell cmdlet help.
- Check whether source, tests, help docs, and website docs still agree after a change.
- Keep command-surface-toggle pages honest by splitting CLI-only and PowerShell-only wording into the matching `data-command-visibility` blocks instead of mixing both spellings in shared prose.

## Inputs to inspect

Expand All @@ -37,15 +38,18 @@ Keep the GitHub Pages documentation under `docs/*.html` accurate, user-focused,
- Treat `docs/*.html` as end-user website docs, not cmdlet help.
- Keep CLI and cmdlet surfaces clearly separated.
- Mention PowerShell-only commands in CLI-oriented docs only when there is no CLI equivalent for that scenario, such as installing NovaModuleTools with `Install-Module`.
- On pages with the surface toggle, only show `--option` spellings in command-line-visible blocks and only show `-Parameter` spellings in PowerShell-visible blocks unless the wording is fully surface-neutral.

## Definition of done

- The changed website docs reflect the current behavior.
- CLI-oriented docs do not drift into cmdlet-help wording.
- Surface-specific labels, flags, and parameter names match the active website command surface.
- Relevant contributor docs and changelog were reviewed for follow-up impact.

## Must not do

- Must not mix cmdlet syntax into CLI docs when a CLI variant exists.
- Must not leave shared always-visible HTML copy with both CLI flags and PowerShell parameters when the page already has the command-surface toggle.
- Must not use `docs/*.html` as a duplicate of `docs/NovaModuleTools/en-US/*.md`.
- Must not leave installation/documentation exceptions implicit; state them clearly.
5 changes: 5 additions & 0 deletions .github/instructions/documentation-separation.instructions.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,10 @@ NovaModuleTools has multiple documentation surfaces with different audiences. Ke
- Do not write cmdlet help markdown as if it were `nova` CLI documentation.
- Use CLI syntax in CLI-oriented website docs when a CLI variant exists.
- Use cmdlet syntax in help markdown and PowerShell-specific contributor guidance.
- On website pages that support the command-surface toggle, keep surface-specific wording behind the matching visibility gate.
- CLI-only flags, labels, and guidance belong in elements marked with `data-command-visibility="command-line"`.
- PowerShell-only parameters, labels, and guidance belong in elements marked with `data-command-visibility="powershell"`.
- Shared prose should stay surface-neutral instead of mixing `--option` and `-Parameter` spellings in the same always-visible paragraph.

## Allowed exception

Expand All @@ -33,6 +37,7 @@ NovaModuleTools has multiple documentation surfaces with different audiences. Ke
- Does this page describe a `nova` workflow or a PowerShell cmdlet workflow?
- If a `nova` command exists, is the website doc using it instead of the cmdlet?
- If a cmdlet is shown in website docs, is it there because no CLI variant exists?
- If the page uses the command-surface toggle, do the visible labels, flags, and parameter names match the selected surface?
- Would an end user mistake this page for cmdlet help?

## Follow-up expectations
Expand Down
3 changes: 3 additions & 0 deletions .github/skills/docs-site/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,17 +24,20 @@ Use this skill when changing `docs/*.html`, end-user examples, installation guid
- Use CLI-oriented examples when the workflow has a `nova` variant.
- Mention PowerShell cmdlets only when no CLI equivalent exists for that scenario.
- Keep installation guidance explicit about PowerShell-only steps such as `Install-Module`.
- On pages with the command-surface toggle, keep option/parameter wording aligned with the active surface by using `data-command-visibility="command-line"` and `data-command-visibility="powershell"` blocks instead of one shared paragraph that mixes CLI flags with PowerShell parameters.
- Recheck the matching command-help markdown when public behavior changes.

## Common pitfalls

- Mixing `Get-/Set-/Invoke-/Install-` cmdlets into CLI docs where `nova` exists
- Leaving `--option` text visible in PowerShell mode, or `-Parameter` text visible in command-line mode, because the surrounding prose was not split by `data-command-visibility`
- Duplicating cmdlet help text in website docs instead of adapting it for end users
- Forgetting that `docs/NovaModuleTools/en-US/*.md` and `docs/*.html` serve different audiences
- Updating website docs without reviewing changelog or contributor-doc impact

## Verification

- Read the touched HTML page as an end-user flow
- Toggle the page mentally between PowerShell and command-line surfaces and confirm the visible option/parameter names still match that surface
- Check whether the same behavior is documented consistently in help markdown or contributor docs
- Use docs-only validation when no executable behavior changed
6 changes: 5 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,11 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),

### Added

- Added `Invoke-NovaAgenticCopilotScaffold` and `% nova copilot` for applying or refreshing Nova's managed Agentic Copilot scaffold in an existing project root.
- The workflow reads `ProjectName` and `Description` from `project.json`, requires a `ShortName` on every run for token replacement, and fails clearly when the project metadata or short name is invalid.
- Nova refreshes only the approved managed Agentic Copilot paths under `.github/` plus `AGENTS.md` and `CONTRIBUTING.md`, while `README.md`, `CHANGELOG.md`, and `RELEASE_NOTE.md` are created only when they are missing.
- The new cmdlet and CLI route prompt before overwriting managed scaffold content by default, and support non-interactive execution only through `-OverrideWarning` / `--override-warning` / `-o`.

### Changed

### Deprecated
Expand Down Expand Up @@ -433,4 +438,3 @@ This release was yanked because it removed the implicit `Pester` dependency, bef
[0.0.6]: https://github.com/stiwicourage/NovaModuleTools/compare/Version_0.0.5...Version_0.0.6
[0.0.5]: https://github.com/stiwicourage/NovaModuleTools/compare/Version_0.0.4...Version_0.0.5
[0.0.4]: https://github.com/stiwicourage/NovaModuleTools/compare/Version_0.0.3...Version_0.0.4

13 changes: 13 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -176,6 +176,19 @@ Direct PowerShell cmdlets such as `Publish-NovaModule`, `Deploy-NovaPackage`, an

The module does not export a PowerShell alias named `nova`. Install the bundled launcher with `Install-NovaCli` when you want `% nova ...` available directly from your shell.

### Apply or refresh the Agentic Copilot scaffold

Use the dedicated scaffold command when you want to add Nova's maintained Agentic Copilot workflow to an existing project, or refresh an older scaffold to Nova's latest managed version:

```powershell
PS> Invoke-NovaAgenticCopilotScaffold -ShortName NMT
% nova copilot --short-name NMT
```

The target directory must contain a valid `project.json`. Nova reads `ProjectName` and `Description` from that file, requires `ShortName` on every run for token replacement, and refreshes only the Nova-managed Agentic Copilot paths under `.github/` plus `AGENTS.md` and `CONTRIBUTING.md`. Existing `README.md`, `CHANGELOG.md`, and `RELEASE_NOTE.md` are preserved and are created only when they are missing.

By default the scaffold flow prompts before it overwrites the managed paths. Use `-OverrideWarning` or `--override-warning` only when you intentionally want a non-interactive apply. The CLI also supports the short form `% nova copilot -n NMT -o`. Use `-WhatIf` or `--what-if` when you want to preview the operation without changing files.

### Reload the built module while iterating

Use the built output during development so you validate the same shape CI uses:
Expand Down
6 changes: 5 additions & 1 deletion RELEASE_NOTE.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,11 @@ This file summarizes the release notes for NovaModuleTools. **UNRELEASED** chang

### Added

- Added `Invoke-NovaAgenticCopilotScaffold` and `% nova copilot` for adding or refreshing Nova's managed Agentic Copilot workflow in an existing project.
- The workflow reads `ProjectName` and `Description` from `project.json`, requires an explicit `ShortName` on every run, and stops with a clear validation error when the target project metadata is missing or invalid.
- Nova refreshes only its managed Agentic Copilot files and folders, while `README.md`, `CHANGELOG.md`, and `RELEASE_NOTE.md` are created only when they are missing.
- The command prompts before overwrite by default and supports non-interactive execution only through `-OverrideWarning` / `--override-warning` / `-o`.

### Changed

### Deprecated
Expand Down Expand Up @@ -195,4 +200,3 @@ This release was yanked because it removed the implicit `Pester` dependency befo
## [0.0.4] - 2024-06-25
### Added
- First PowerShell Gallery release of NovaModuleTools with the initial module workflow support.

2 changes: 1 addition & 1 deletion docs/NovaModuleTools/en-US/Deploy-NovaPackage.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
document type: cmdlet
external help file: NovaModuleTools-Help.xml
HelpUri: ''
HelpUri: 'https://www.novamoduletools.com/packaging-and-delivery.html#upload'
Locale: en-US
Module Name: NovaModuleTools
ms.date: 04/25/2026
Expand Down
2 changes: 1 addition & 1 deletion docs/NovaModuleTools/en-US/Get-NovaProjectInfo.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
document type: cmdlet
external help file: NovaModuleTools-Help.xml
HelpUri: ''
HelpUri: 'https://www.novamoduletools.com/project-json-reference.html'
Locale: en-US
Module Name: NovaModuleTools
ms.date: 05/06/2026
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
document type: cmdlet
external help file: NovaModuleTools-Help.xml
HelpUri: ''
HelpUri: 'https://www.novamoduletools.com/versioning-and-updates.html#notification-preferences'
Locale: en-US
Module Name: NovaModuleTools
ms.date: 04/25/2026
Expand Down
2 changes: 1 addition & 1 deletion docs/NovaModuleTools/en-US/Initialize-NovaModule.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
document type: cmdlet
external help file: NovaModuleTools-Help.xml
HelpUri: ''
HelpUri: 'https://www.novamoduletools.com/core-workflows.html#scaffold'
Locale: en-US
Module Name: NovaModuleTools
ms.date: 04/25/2026
Expand Down
2 changes: 1 addition & 1 deletion docs/NovaModuleTools/en-US/Install-NovaCli.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
document type: cmdlet
external help file: NovaModuleTools-Help.xml
HelpUri: ''
HelpUri: 'https://www.novamoduletools.com/commands.html#setup-and-project'
Locale: en-US
Module Name: NovaModuleTools
ms.date: 04/25/2026
Expand Down
207 changes: 207 additions & 0 deletions docs/NovaModuleTools/en-US/Invoke-NovaAgenticCopilotScaffold.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,207 @@
---
document type: cmdlet
external help file: NovaModuleTools-Help.xml
HelpUri: 'https://www.novamoduletools.com/core-workflows.html#agentic-copilot'
Locale: en-US
Module Name: NovaModuleTools
ms.date: 05/20/2026
PlatyPS schema version: 2024-05-01
title: Invoke-NovaAgenticCopilotScaffold
---

# Invoke-NovaAgenticCopilotScaffold

## SYNOPSIS

Apply or refresh Nova's managed Agentic Copilot scaffold in an existing project.

## SYNTAX

### __AllParameterSets

```text
Invoke-NovaAgenticCopilotScaffold [[-Path] <string>] [-ShortName] <string> [-OverrideWarning]
[-WhatIf] [-Confirm] [<CommonParameters>]
```

## DESCRIPTION

`Invoke-NovaAgenticCopilotScaffold` applies Nova's maintained Agentic Copilot scaffold to an existing project root.

The command reads `ProjectName` and `Description` from the target `project.json`, requires a `ShortName` on every run for token replacement, and refreshes only Nova-managed Agentic Copilot paths. Existing `README.md`, `CHANGELOG.md`, and `RELEASE_NOTE.md` are preserved and are created only when they are missing.

By default the workflow shows an overwrite warning before it updates the managed scaffold paths. Use `-OverrideWarning` only when you intentionally want a non-interactive apply or refresh.

The target path must contain a valid `project.json`. Invalid project metadata or an invalid short name stops the command with a clear validation error.

## EXAMPLES

### EXAMPLE 1

```text
PS> Invoke-NovaAgenticCopilotScaffold -ShortName NMT
```

Apply or refresh the Nova-managed Agentic Copilot scaffold in the current project root after the overwrite warning is confirmed.

### EXAMPLE 2

```text
PS> Invoke-NovaAgenticCopilotScaffold -Path ~/Work/MyModule -ShortName NMT -OverrideWarning
```

Apply or refresh the managed scaffold in a specific project root without showing the overwrite warning prompt.

### EXAMPLE 3

```text
PS> Invoke-NovaAgenticCopilotScaffold -ShortName NMT -WhatIf
```

Preview the managed scaffold apply workflow without writing or overwriting files.

## PARAMETERS

### -Confirm

Prompts you for confirmation before running the cmdlet.

```yaml
Type: System.Management.Automation.SwitchParameter
DefaultValue: ''
SupportsWildcards: false
Aliases:
- cf
ParameterSets:
- Name: (All)
Position: Named
IsRequired: false
ValueFromPipeline: false
ValueFromPipelineByPropertyName: false
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
```

### -OverrideWarning

Skip the overwrite warning prompt and continue directly with the managed scaffold apply or refresh workflow.

```yaml
Type: System.Management.Automation.SwitchParameter
DefaultValue: ''
SupportsWildcards: false
Aliases: []
ParameterSets:
- Name: (All)
Position: Named
IsRequired: false
ValueFromPipeline: false
ValueFromPipelineByPropertyName: false
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
```

### -Path

Project root that contains the existing `project.json` file. Defaults to the current location.

```yaml
Type: System.String
DefaultValue: ''
SupportsWildcards: false
Aliases: []
ParameterSets:
- Name: (All)
Position: 0
IsRequired: false
ValueFromPipeline: false
ValueFromPipelineByPropertyName: false
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
```

### -ShortName

Short placeholder name used in generated guidance tokens such as `Invoke-<ShortName>*`. Use a value that starts with a letter and contains only letters or numbers.

```yaml
Type: System.String
DefaultValue: ''
SupportsWildcards: false
Aliases: []
ParameterSets:
- Name: (All)
Position: 1
IsRequired: true
ValueFromPipeline: false
ValueFromPipelineByPropertyName: false
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
```

### -WhatIf

Runs the command in a mode that only reports what would happen without performing the actions.

```yaml
Type: System.Management.Automation.SwitchParameter
DefaultValue: ''
SupportsWildcards: false
Aliases:
- wi
ParameterSets:
- Name: (All)
Position: Named
IsRequired: false
ValueFromPipeline: false
ValueFromPipelineByPropertyName: false
ValueFromRemainingArguments: false
DontShow: false
AcceptedValues: []
HelpMessage: ''
```

### CommonParameters

This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction, and -WarningVariable. For more information, see
[about_CommonParameters](https://go.microsoft.com/fwlink/?LinkID=113216).

## INPUTS

### None

You can't pipe objects to this cmdlet.

## OUTPUTS

### None

This cmdlet does not emit an output object.

## NOTES

This workflow does not persist `ShortName` to `project.json` and does not infer it from any existing scaffold files. It refreshes 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`

`README.md`, `CHANGELOG.md`, and `RELEASE_NOTE.md` are created only when they are missing.

## RELATED LINKS

- https://github.com/stiwicourage/NovaModuleTools/blob/main/docs/NovaModuleTools/en-US/Initialize-NovaModule.md
- https://github.com/stiwicourage/NovaModuleTools/blob/main/docs/NovaModuleTools/en-US/Get-NovaProjectInfo.md
2 changes: 1 addition & 1 deletion docs/NovaModuleTools/en-US/Invoke-NovaBuild.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
document type: cmdlet
external help file: NovaModuleTools-Help.xml
HelpUri: ''
HelpUri: 'https://www.novamoduletools.com/core-workflows.html#build'
Locale: en-US
Module Name: NovaModuleTools
ms.date: 04/25/2026
Expand Down
2 changes: 1 addition & 1 deletion docs/NovaModuleTools/en-US/Invoke-NovaRelease.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
document type: cmdlet
external help file: NovaModuleTools-Help.xml
HelpUri: ''
HelpUri: 'https://www.novamoduletools.com/packaging-and-delivery.html#release'
Locale: en-US
Module Name: NovaModuleTools
ms.date: 05/03/2026
Expand Down
Loading
Loading