Skip to content

Commit b04b0d5

Browse files
authored
Merge pull request #211 from stiwicourage/develop
Prepare for prerelease and fix documentation layouts
2 parents 12dd5a2 + e619116 commit b04b0d5

35 files changed

Lines changed: 418 additions & 168 deletions

CHANGELOG.md

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,16 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
1515

1616
### Fixed
1717

18+
- Website layout and copy now keep expanding with the browser width instead of stopping at fixed max-width caps on wide windows; the shared site stylesheet no longer limits the outer page shell, guide intros, leads, section headings, or guide body text to narrow fixed widths.
19+
- The command cheat sheet now keeps the "Set up a project" section balanced by summarizing scaffold extras instead of repeating the full internal Agentic guidance list.
20+
- The getting-started guide now splits the Agentic quickstart explanation into shorter paragraphs so the scaffold flow stays readable on the site.
21+
- The core workflows guide now splits the scaffold and Agentic starter explanation into shorter paragraphs so the page stays readable on the site.
22+
- The command cheat sheet now stacks the three "Set up a project" cards vertically so the section reads top-to-bottom without a missing grid slot.
23+
- The Agentic Copilot starter shipped by `nova init` no longer tells generated projects to use a `run.ps1` quality wrapper that the template does not include.
24+
- The scaffold now points generated documentation and agent guidance to the repository quality loop wording plus the existing analyzer and `Test-NovaBuild` entrypoints instead.
25+
- `nova init --example` now ships the packaged example with source-mirrored tests and `Pester.CodeCoverage.Enabled = true` by default.
26+
- The example scaffold now runs `Test-NovaBuild` against `src/**/*.ps1` without requiring a prior build, and the bundled docs describe that source-first coverage flow.
27+
1828
### Security
1929

2030
## [3.0.0] - 2026-05-17
@@ -417,4 +427,3 @@ This release was yanked because it removed the implicit `Pester` dependency, bef
417427
[0.0.6]: https://github.com/stiwicourage/NovaModuleTools/compare/Version_0.0.5...Version_0.0.6
418428
[0.0.5]: https://github.com/stiwicourage/NovaModuleTools/compare/Version_0.0.4...Version_0.0.5
419429
[0.0.4]: https://github.com/stiwicourage/NovaModuleTools/compare/Version_0.0.3...Version_0.0.4
420-

RELEASE_NOTE.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,9 @@ This file summarizes the release notes for NovaModuleTools. **UNRELEASED** chang
1414

1515
### Fixed
1616

17+
- The Agentic Copilot starter shipped by `nova init` no longer tells generated projects to use a `run.ps1` quality wrapper that the template does not include.
18+
- `nova init --example` now ships the packaged example with source-mirrored tests and code coverage enabled by default, so `Test-NovaBuild` works before a build and measures `src/**/*.ps1`.
19+
1720
### Security
1821

1922
## [3.0.0] - 2026-05-17
@@ -188,4 +191,3 @@ This release was yanked because it removed the implicit `Pester` dependency befo
188191
## [0.0.4] - 2024-06-25
189192
### Added
190193
- First PowerShell Gallery release of NovaModuleTools with the initial module workflow support.
191-

docs/NovaModuleTools/en-US/Initialize-NovaModule.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ PS> Initialize-NovaModule [-Path <string>] [-Example] [-WhatIf] [-Confirm] [<Com
2727

2828
`Initialize-NovaModule` creates a new project folder, the standard `src/` layout, and a starter `project.json` file.
2929

30-
The starter `project.json` includes Nova's standard Pester defaults, including an opt-in `CodeCoverage` block with `Enabled=false`, common `src/` coverage paths, JaCoCo output in `artifacts/coverage.xml`, and a `90` percent target that can be enabled later.
30+
The standard scaffold `project.json` includes Nova's standard Pester defaults, including an opt-in `CodeCoverage` block with `Enabled=false`, common `src/` coverage paths, JaCoCo output in `artifacts/coverage.xml`, and a `90` percent target that can be enabled later.
3131

3232
The command collects project details interactively, including the module name, description, version, author, minimum PowerShell version, Git initialization, and an optional Agentic Copilot starter package. Before the first interactive question, Nova checks whether a newer `NovaModuleTools` release is available and warns without blocking the scaffold flow. When Git initialization is enabled, Nova also creates or updates a default `.gitignore` in the generated project root so common local and CI artifact paths such as `artifacts/`, `dist/`, `run.ps1`, and `reload.ps1` are ignored from the start. Existing `.gitignore` files are preserved and only receive the missing Nova-managed entries. When you enable the Agentic package, Nova also asks for a project short name used in generated guidance placeholders such as `Invoke-<ShortName>*`; for NovaModuleTools the short name is `Nova`, but it could also have been
3333
`NMT`. The Agentic package follows Nova's maintained agentic guidance through a filtered starter mirror, including Nova build/test/package expectations, `project.json`
@@ -40,7 +40,7 @@ Use this command when you want to start a new module in the NovaModuleTools stru
4040

4141
Use `-Path` when you want to create the project under a specific base directory. Positional path syntax is no longer supported.
4242

43-
Use `-Example` when you want the scaffold to start from the packaged example project instead of the minimal default layout. The example flow keeps the example source, resource, and test files, skips the Pester enable/disable question, and applies the interactive metadata values to the copied `project.json`, including the same disabled-by-default `CodeCoverage` block that the standard scaffold uses. The standard and example flows share the same upfront Nova update warning, inline validation and retry behavior for interactive answers, and optional Agentic Copilot setup prompt after the Git question. When Git is enabled in either flow, Nova also ensures the generated project root has the default `.gitignore` entries for local and CI artifacts without overwriting any existing `.gitignore` content. When you answer
43+
Use `-Example` when you want the scaffold to start from the packaged example project instead of the minimal default layout. The example flow keeps the example source, resource, and source-mirrored test files, skips the Pester enable/disable question, and applies the interactive metadata values to the copied `project.json`, including an enabled-by-default `CodeCoverage` block that targets `src/**/*.ps1`. The packaged example can run `Test-NovaBuild` before `Invoke-NovaBuild`, and the same test flow writes JaCoCo coverage to `artifacts/coverage.xml`. The standard and example flows share the same upfront Nova update warning, inline validation and retry behavior for interactive answers, and optional Agentic Copilot setup prompt after the Git question. When Git is enabled in either flow, Nova also ensures the generated project root has the default `.gitignore` entries for local and CI artifacts without overwriting any existing `.gitignore` content. When you answer
4444
`Yes`, Nova asks for the short project name, adds the same starter package to either scaffold style, and merges the example README instead of replacing it with the generic starter README outright.
4545

4646
This command supports `-WhatIf` and `-Confirm` through PowerShell `SupportsShouldProcess`. Use `-WhatIf` to preview the scaffold target after the interactive answers have been collected, without creating folders, writing `project.json`, or initializing Git.
@@ -142,7 +142,7 @@ This cmdlet does not emit an output object.
142142
143143
## NOTES
144144
145-
Generated projects start with NovaModuleTools defaults for recursive discovery, source markers, duplicate-function validation, an opt-in Pester `CodeCoverage` block (`Enabled=false`, shared `src/` paths, JaCoCo output in `artifacts/coverage.xml`, and a `90` percent target), and—when Git is enabled—a default `.gitignore` for common local and CI artifact paths. The packaged example scaffold keeps its bundled example source and tests, while still updating prompt-driven metadata such as project name, description, version, author, and PowerShell host version. The optional Agentic Copilot starter package adds repository-local Copilot workflow files under the project root and `.github/` that tell agents to keep build/test/package workflows on Nova, treat `project.json` `Manifest.PowerShellHostVersion` as the PowerShell compatibility target, run ScriptAnalyzer before build/test through the repo-standard `Invoke-ScriptAnalyzerCI.ps1` /
145+
Generated projects start with NovaModuleTools defaults for recursive discovery, source markers, duplicate-function validation, and—when Git is enabled—a default `.gitignore` for common local and CI artifact paths. The standard scaffold keeps Pester `CodeCoverage` opt-in (`Enabled=false`, shared `src/` paths, JaCoCo output in `artifacts/coverage.xml`, and a `90` percent target). The packaged example scaffold keeps its bundled example source and source-mirrored tests, while also enabling that same `CodeCoverage` block by default so `Test-NovaBuild` measures `src/**/*.ps1` without requiring a prior build. Both scaffold styles still update prompt-driven metadata such as project name, description, version, author, and PowerShell host version. The optional Agentic Copilot starter package adds repository-local Copilot workflow files under the project root and `.github/` that tell agents to keep build/test/package workflows on Nova, treat `project.json` `Manifest.PowerShellHostVersion` as the PowerShell compatibility target, run ScriptAnalyzer before build/test through the repo-standard `Invoke-ScriptAnalyzerCI.ps1` /
146146
`run.ps1` workflow, fix any ScriptAnalyzer findings before handoff, run project tests through `Test-NovaBuild` instead of direct `Invoke-Pester`, leave `.psm1` / `.psd1` files to generated
147147
`dist` output, generate and validate command help with the Microsoft.PowerShell.PlatyPS cmdlets instead of hand-written Markdown structure, require a matching help file for every new public entry point in the same change, mirror new tests to source files, and add a text-file-formatting guardrail helper plus a Pester guardrail test when project tests are enabled.
148148

docs/assets/site.css

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
--outline: rgba(255, 255, 255, 0.12);
1212
--shadow: 0 20px 60px rgba(0, 0, 0, 0.28);
1313
--radius: 22px;
14-
--max-width: 1600px;
14+
--max-width: none;
1515
--anchor-offset: 2.90rem;
1616
}
1717

@@ -254,7 +254,7 @@ pre code {
254254

255255
.guide-hero {
256256
margin-bottom: 3rem;
257-
max-width: 880px;
257+
max-width: none;
258258
}
259259

260260

@@ -331,7 +331,7 @@ pre code {
331331
.guide-content .content-section > p,
332332
.guide-content .content-section > ul,
333333
.guide-content .content-section > ol {
334-
max-width: 72ch;
334+
max-width: none;
335335
}
336336

337337
.guide-grid {
@@ -380,7 +380,7 @@ h3 {
380380

381381
h1 {
382382
font-size: clamp(2.6rem, 5vw, 4.6rem);
383-
max-width: 12ch;
383+
max-width: none;
384384
}
385385

386386
h2 {
@@ -398,7 +398,7 @@ p {
398398

399399
.lead {
400400
font-size: 1.1rem;
401-
max-width: 68ch;
401+
max-width: none;
402402
}
403403

404404
.hero__actions {
@@ -517,11 +517,11 @@ p {
517517
}
518518

519519
.narrow {
520-
max-width: 760px;
520+
max-width: none;
521521
}
522522

523523
.section-heading {
524-
max-width: 760px;
524+
max-width: none;
525525
margin-bottom: 2.5rem;
526526
}
527527

@@ -772,6 +772,10 @@ td {
772772
gap: 1.5rem;
773773
}
774774

775+
.command-card-grid--stacked {
776+
grid-template-columns: 1fr;
777+
}
778+
775779
.command-card h3 {
776780
margin-bottom: 0.75rem;
777781
}

docs/commands.html

Lines changed: 12 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ <h1>Keep one workflow surface in view</h1>
8989
<h2>On this page</h2>
9090
<ul class="toc-list">
9191
<li><a href="#choose-surface">Choose your surface</a></li>
92-
<li><a href="#setup-and-project">Setup and project</a></li>
92+
<li><a href="#setup-and-project">Set up a project</a></li>
9393
<li><a href="#build-and-validate">Build and validate</a></li>
9494
<li><a href="#package-and-ship">Package and ship</a></li>
9595
<li><a href="#version-and-update">Version and update</a></li>
@@ -146,8 +146,8 @@ <h2>Choose your surface</h2>
146146
</section>
147147

148148
<section class="content-section" id="setup-and-project">
149-
<h2>Setup and project</h2>
150-
<div class="command-card-grid">
149+
<h2>Set up a project</h2>
150+
<div class="command-card-grid command-card-grid--stacked">
151151
<article class="command-card">
152152
<h3>Install the <code>nova</code> launcher</h3>
153153
<p>Use this one-time PowerShell setup when you want <code>nova</code> available directly from
@@ -174,37 +174,17 @@ <h3>Start a new project</h3>
174174
<div class="surface-note" data-command-visibility="powershell">
175175
<p><strong>Cmdlet:</strong> <code>Initialize-NovaModule</code></p>
176176
</div>
177-
<p>Create the minimal scaffold or the example scaffold for a new module project. Before the
178-
first interactive question, Nova checks whether a newer NovaModuleTools release is
179-
available and warns without blocking the scaffold flow. When Git is enabled, Nova also
180-
creates or updates a default <code>.gitignore</code> in the generated project root so
181-
common local and CI artifact paths are ignored without overwriting existing rules. Both
182-
interactive flows can also add the optional Agentic Copilot starter package,
183-
which follows Nova's maintained agentic guidance through a filtered starter mirror, including Nova build/test
184-
expectations, <code>project.json</code> <code>Manifest.PowerShellHostVersion</code>
185-
compatibility guidance, strict ScriptAnalyzer guidance without excluded rules, generated
186-
<code>dist</code> module files, command-help ownership, source-mirrored test guidance,
187-
instructions to fix ScriptAnalyzer findings reported by <code>run.ps1</code> before
188-
handoff, explicit public/private PowerShell file ownership guidance, a best-effort
189-
source/helper-script maintainability guidance plus separate test-design guidance delivered
190-
through best-effort source/helper-script maintainability guidance plus separate test-design guidance, explicit PSScriptAnalyzer
191-
workflow guidance for <code>./scripts/build/Invoke-ScriptAnalyzerCI.ps1</code>,
192-
<code>./run.ps1</code>, focused <code>Invoke-ScriptAnalyzer</code> usage, and
193-
Test-NovaBuild-only project test guidance that forbids direct
194-
<code>Invoke-Pester</code>, explicit
195-
valid-PlatyPS help guidance for <code>docs/&lt;ProjectName&gt;/en-US/*.md</code> using
196-
<code>New-MarkdownCommandHelp</code>, <code>Update-MarkdownCommandHelp</code>, and
197-
<code>Test-MarkdownCommandHelp</code>, with a matching help file required for every new
198-
public entry point, and a strict file-ending rule for changed or
199-
generated text files.
200-
</p>
201-
<p>New projects also start with Nova's default <code>Pester.CodeCoverage</code> block in
202-
<code>project.json</code>, but keep it disabled until you choose to enable coverage.</p>
203-
<p>If you enable the Agentic package, Nova also asks for a short project name used in generated
204-
guidance placeholders such as <code>Invoke-&lt;ShortName&gt;*</code>. For NovaModuleTools the
205-
short name is <code>Nova</code>, but it could also have been <code>NMT</code>.</p>
177+
<p>Create the minimal scaffold or the example scaffold for a new module project.</p>
206178
<ul class="plain-list">
207179
<li><strong>Use when:</strong> you are creating a fresh NovaModuleTools project</li>
180+
<li><strong>Includes:</strong> a pre-question Nova release warning, best-effort
181+
<code>.gitignore</code> creation or update when Git is enabled, and Nova's default
182+
<code>Pester.CodeCoverage</code> block in <code>project.json</code>; the minimal
183+
scaffold keeps coverage opt-in, while the packaged example scaffold starts with coverage
184+
enabled against <code>src/**/*.ps1</code></li>
185+
<li><strong>Optional:</strong> add the <strong>Agentic Copilot</strong> starter package for Nova-maintained
186+
build, test, analyzer, help, and guidance files; if you enable it, Nova also asks for a
187+
short project name for placeholders such as <code>Invoke-&lt;ShortName&gt;*</code></li>
208188
<li data-command-visibility="command-line" hidden><strong>Remember:</strong> pass the target path
209189
explicitly with <code>--path</code> or <code>-p</code></li>
210190
<li data-command-visibility="powershell"><strong>Common parameters:</strong>

0 commit comments

Comments
 (0)