Skip to content

Commit be6ec87

Browse files
authored
Merge pull request #237 from stiwicourage/develop
Enhance Nova CLI commands and improve deployment help links
2 parents 917e7d7 + eaf49f3 commit be6ec87

151 files changed

Lines changed: 5375 additions & 531 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/agents/architect.agent.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ Design or reshape changes that cross public commands, private helper boundaries,
3737
## Skills to use
3838

3939
- `/powershell-module-development`
40+
- `/terminal-ux-design`
4041
- `/release-and-changelog`
4142
- `/markdown-authoring`
4243
- `/building-maintainable-code`

.github/agents/docs-site.agent.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ Keep the GitHub Pages documentation under `docs/*.html` accurate, user-focused,
1414
- Update `docs/*.html` when end-user workflows, examples, or website wording change.
1515
- Preserve the separation between CLI-oriented website docs and PowerShell cmdlet help.
1616
- Check whether source, tests, help docs, and website docs still agree after a change.
17+
- 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.
1718

1819
## Inputs to inspect
1920

@@ -37,15 +38,18 @@ Keep the GitHub Pages documentation under `docs/*.html` accurate, user-focused,
3738
- Treat `docs/*.html` as end-user website docs, not cmdlet help.
3839
- Keep CLI and cmdlet surfaces clearly separated.
3940
- 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`.
41+
- 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.
4042

4143
## Definition of done
4244

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

4750
## Must not do
4851

4952
- Must not mix cmdlet syntax into CLI docs when a CLI variant exists.
53+
- Must not leave shared always-visible HTML copy with both CLI flags and PowerShell parameters when the page already has the command-surface toggle.
5054
- Must not use `docs/*.html` as a duplicate of `docs/NovaModuleTools/en-US/*.md`.
5155
- Must not leave installation/documentation exceptions implicit; state them clearly.

.github/agents/powershell-developer.agent.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ Implement PowerShell command and helper changes in the NovaModuleTools style.
3232
## Skills to use
3333

3434
- `/powershell-module-development`
35+
- `/terminal-ux-design`
3536
- `/pester-testing`
3637
- `/building-maintainable-code`
3738
- `/codescene-quality`

.github/agents/reviewer.agent.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ Review changes for correctness, maintainability, test coverage, workflow safety,
4141

4242
## Skills to use
4343

44+
- `/terminal-ux-design`
4445
- `/codescene-quality`
4546
- `/safeguarding-ai-generated-code`
4647
- `/building-maintainable-code`

.github/copilot-instructions.md

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -37,15 +37,15 @@ For new or not-yet-scoped work, use the `architect` agent with `.github/prompts/
3737

3838
The table below shows how to route work. Prompts are the task entry points; each prompt delegates to its agent, which uses the listed skills, which in turn enforce the listed instructions.
3939

40-
| Task | Prompt | Agent | Primary skills | Primary instructions |
41-
| ----------------------------- | ------------------------------------------ | ---------------------- | ------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------- |
42-
| Design or scope a change | `design-change.prompt.md` | `architect` | `powershell-module-development`, `github-actions`, `release-and-changelog`, `markdown-authoring` | `repository-conventions`, `code-quality-matrix` |
43-
| Implement an issue | `implement-issue.prompt.md` | `powershell-developer` | `powershell-module-development`, `pester-testing`, `building-maintainable-code`, `codescene-quality`, `safeguarding-ai-generated-code` | `repository-conventions`, `code-quality-matrix`, `psscriptanalyzer`, `powershell-coding-standards`, `platyps-help` |
44-
| Review a change | `review-change.prompt.md` | `reviewer` | `codescene-quality`, `safeguarding-ai-generated-code`, `building-maintainable-code`, `docs-site`, `markdown-authoring`, `pester-testing`, `release-and-changelog`, `github-actions` | All `.github/instructions/*.instructions.md` |
45-
| Improve test coverage | `improve-test-coverage.prompt.md` | `test-engineer` | `pester-testing`, `building-maintainable-code`, `codescene-quality`, `github-actions`, `guiding-refactoring-with-code-health`, `safeguarding-ai-generated-code` | `testing-policy`, `psscriptanalyzer` |
46-
| Prepare a release | `prepare-release.prompt.md` | `release-manager` | `release-and-changelog`, `markdown-authoring` | `release-policy`, `repository-conventions` |
47-
| Fix a CI failure | `fix-ci-failure.prompt.md` | `powershell-developer` (or `test-engineer`) | `github-actions`, `pester-testing` | `testing-policy`, `psscriptanalyzer`, `repository-conventions` |
48-
| Update website docs | (no dedicated prompt — invoke agent) | `docs-site` | `docs-site`, `markdown-authoring` | `documentation-separation` |
40+
| Task | Prompt | Agent | Primary skills | Primary instructions |
41+
|--------------------------|--------------------------------------|---------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------|
42+
| Design or scope a change | `design-change.prompt.md` | `architect` | `powershell-module-development`, `terminal-ux-design`, `github-actions`, `release-and-changelog`, `markdown-authoring` | `repository-conventions`, `code-quality-matrix` |
43+
| Implement an issue | `implement-issue.prompt.md` | `powershell-developer` | `powershell-module-development`, `terminal-ux-design`, `pester-testing`, `building-maintainable-code`, `codescene-quality`, `safeguarding-ai-generated-code` | `repository-conventions`, `code-quality-matrix`, `psscriptanalyzer`, `powershell-coding-standards`, `platyps-help` |
44+
| Review a change | `review-change.prompt.md` | `reviewer` | `terminal-ux-design`, `codescene-quality`, `safeguarding-ai-generated-code`, `building-maintainable-code`, `docs-site`, `markdown-authoring`, `pester-testing`, `release-and-changelog`, `github-actions` | All `.github/instructions/*.instructions.md` |
45+
| Improve test coverage | `improve-test-coverage.prompt.md` | `test-engineer` | `pester-testing`, `building-maintainable-code`, `codescene-quality`, `github-actions`, `guiding-refactoring-with-code-health`, `safeguarding-ai-generated-code` | `testing-policy`, `psscriptanalyzer` |
46+
| Prepare a release | `prepare-release.prompt.md` | `release-manager` | `release-and-changelog`, `markdown-authoring` | `release-policy`, `repository-conventions` |
47+
| Fix a CI failure | `fix-ci-failure.prompt.md` | `powershell-developer` (or `test-engineer`) | `github-actions`, `pester-testing` | `testing-policy`, `psscriptanalyzer`, `repository-conventions` |
48+
| Update website docs | (no dedicated prompt — invoke agent) | `docs-site` | `docs-site`, `markdown-authoring` | `documentation-separation` |
4949

5050
## Notation
5151

@@ -61,5 +61,6 @@ The table below shows how to route work. Prompts are the task entry points; each
6161
- PSScriptAnalyzer workflow: `.github/instructions/psscriptanalyzer.instructions.md`
6262
- PowerShell coding standards: `.github/instructions/powershell-coding-standards.instructions.md`
6363
- PlatyPS help generation: `.github/instructions/platyps-help.instructions.md`
64+
- Terminal UX: `.github/instructions/terminal-ux-design.instructions.md` + `terminal-ux-design` skill
6465
- Release flow: `.github/instructions/release-policy.instructions.md` + `release-and-changelog` skill
6566
- Documentation separation: `.github/instructions/documentation-separation.instructions.md` + `docs-site` skill

.github/instructions/documentation-separation.instructions.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,10 @@ NovaModuleTools has multiple documentation surfaces with different audiences. Ke
2020
- Do not write cmdlet help markdown as if it were `nova` CLI documentation.
2121
- Use CLI syntax in CLI-oriented website docs when a CLI variant exists.
2222
- Use cmdlet syntax in help markdown and PowerShell-specific contributor guidance.
23+
- On website pages that support the command-surface toggle, keep surface-specific wording behind the matching visibility gate.
24+
- CLI-only flags, labels, and guidance belong in elements marked with `data-command-visibility="command-line"`.
25+
- PowerShell-only parameters, labels, and guidance belong in elements marked with `data-command-visibility="powershell"`.
26+
- Shared prose should stay surface-neutral instead of mixing `--option` and `-Parameter` spellings in the same always-visible paragraph.
2327

2428
## Allowed exception
2529

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

3843
## Follow-up expectations

.github/instructions/platyps-help.instructions.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,9 @@ Import-MarkdownCommandHelp -Path ./docs/NovaModuleTools/en-US/<CommandName>.md |
6666
- The `external help file` field must always use the module name, not the command name: `NovaModuleTools-Help.xml`. The `Module Name` field must match the project name. When both fields use the module name, Nova build produces a single `<ModuleName>-Help.xml` under `dist/<ModuleName>/en-US/`. If either field contains a command name instead, the build produces per-command XML files and the module manifest cannot find its help.
6767
- Keep the H1 title equal to the exact command name.
6868
- Preserve the standard PlatyPS section order with uppercase H2 headers: `SYNOPSIS`, `SYNTAX`, optional `ALIASES`, `DESCRIPTION`, `EXAMPLES`, `PARAMETERS`, `INPUTS`, `OUTPUTS`, `NOTES`, and `RELATED LINKS`.
69+
- In `## RELATED LINKS`, use only a bulleted list of Markdown links. Do not use bare URLs or backticked command names as list items.
70+
- Prefer relative links to sibling command-help files when the related topic has a matching file in `docs/NovaModuleTools/en-US/`, for example `[Invoke-NovaBuild](./Invoke-NovaBuild.md)`.
71+
- Do not use GitHub blob URLs in shipped command help. If a relative command-help link is not suitable after PlatyPS validation, use the related topic's `novamoduletools.com` `HelpUri` instead.
6972
- Keep at least one example under `## EXAMPLES`.
7073
- Keep parameter sections as `### -ParameterName` blocks with the PlatyPS-generated YAML metadata code block.
7174
- Only hand-edit parameter metadata when PlatyPS cannot infer it correctly, especially `DefaultValue` and `SupportsWildcards`.
@@ -82,6 +85,7 @@ Import-MarkdownCommandHelp -Path ./docs/NovaModuleTools/en-US/<CommandName>.md |
8285
- Use `Update-MarkdownCommandHelp` after command or parameter changes so syntax, aliases, and parameter metadata stay synchronized with the implementation.
8386
- Use `Test-MarkdownCommandHelp` as the quick structural gate before handoff; use `Import-MarkdownCommandHelp` diagnostics when you need more detail.
8487
- Use existing valid files under `docs/NovaModuleTools/en-US/` as the structural template before inventing a new layout.
88+
- Validate any new `RELATED LINKS` target style through the real PlatyPS import/export path before applying it repo-wide.
8589
- Keep command help separate from contributor docs and project/site docs.
8690

8791
## Review expectations
@@ -90,4 +94,5 @@ Import-MarkdownCommandHelp -Path ./docs/NovaModuleTools/en-US/<CommandName>.md |
9094
- Reviewers should flag help files where `external help file` contains a command name (e.g., `Get-Something-Help.xml`) instead of the module name (`NovaModuleTools-Help.xml`). This produces per-command XML files that the module manifest cannot locate at runtime.
9195
- Reviewers should flag help files that would fail `Test-MarkdownCommandHelp` or produce diagnostics/errors when imported with `Import-MarkdownCommandHelp`.
9296
- Reviewers should flag any new public entry point that does not add its matching command-help file in the same change.
97+
- Reviewers should flag `RELATED LINKS` entries that use GitHub blob URLs, plain URLs, or bare/backticked command names instead of Markdown links.
9398
- Treat build errors from `Import-MarkdownCommandHelp` as a sign that the file is not valid PlatyPS help yet.
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
---
2+
applyTo: "**"
3+
---
4+
5+
# Terminal UX design
6+
7+
Use the `terminal-ux-design` skill when a change touches any user-facing command, terminal output, prompt, help surface, progress indicator, warning, error message, or scaffold guidance for those surfaces.
8+
9+
This applies to:
10+
11+
- PowerShell cmdlets
12+
- `% nova` CLI routes
13+
- private helpers that shape user-visible terminal behavior
14+
- contributor docs, command help, and scaffold content that teach those workflows
15+
16+
Keep PowerShell cmdlet UX and `% nova` CLI UX distinct, but hold both to the same terminal UX bar.
17+
18+
The skill is authoritative for:
19+
20+
- Atlassian's 10 design principles for delightful CLIs
21+
- Jakob Nielsen's 10 usability heuristics for user interface design

.github/pull_request_template.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
- [ ] Dependency or manifest changes (`project.json`, workflow dependencies, release tooling)
2121
- [ ] Security-sensitive change
2222
- [ ] Documentation-only change
23+
- [ ] Agentic Copilot Workflow + scaffold mirror + scaffold-sync guardrail test.
2324
- [ ] Other
2425

2526
## Review guidance

.github/skills/docs-site/SKILL.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,17 +24,20 @@ Use this skill when changing `docs/*.html`, end-user examples, installation guid
2424
- Use CLI-oriented examples when the workflow has a `nova` variant.
2525
- Mention PowerShell cmdlets only when no CLI equivalent exists for that scenario.
2626
- Keep installation guidance explicit about PowerShell-only steps such as `Install-Module`.
27+
- 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.
2728
- Recheck the matching command-help markdown when public behavior changes.
2829

2930
## Common pitfalls
3031

3132
- Mixing `Get-/Set-/Invoke-/Install-` cmdlets into CLI docs where `nova` exists
33+
- 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`
3234
- Duplicating cmdlet help text in website docs instead of adapting it for end users
3335
- Forgetting that `docs/NovaModuleTools/en-US/*.md` and `docs/*.html` serve different audiences
3436
- Updating website docs without reviewing changelog or contributor-doc impact
3537

3638
## Verification
3739

3840
- Read the touched HTML page as an end-user flow
41+
- Toggle the page mentally between PowerShell and command-line surfaces and confirm the visible option/parameter names still match that surface
3942
- Check whether the same behavior is documented consistently in help markdown or contributor docs
4043
- Use docs-only validation when no executable behavior changed

0 commit comments

Comments
 (0)