Repository navigation
Shared coding standards use direct en-US guidance - #258
Open
Marius Storhaug (MariusStorhaug) wants to merge 5 commits into
Open
Marius Storhaug (MariusStorhaug) wants to merge 5 commits into
Marius Storhaug (MariusStorhaug) wants to merge 5 commits into
Conversation
There was a problem hiding this comment.
🟢 Approved
No active review issues are reported for the documentation-only update to the shared Markdown standard.
No open issues 🎉
What changed in this PR
This documentation-only change makes the shared Markdown standard more direct and consistent with en-US usage while preserving commands, examples, anchors, and technical requirements.
Changes:
- Replaces non-US spellings and simplifies rule explanations.
- Distinguishes formatting, local-link, and cross-repository validation scopes.
- Clarifies that successful local linting does not establish full CI or STE conformance.
| File | Description |
|---|---|
src/docs/Coding-Standards/Markdown.md |
Clarifies authoring rules and validation coverage using direct en-US guidance. |
Review effort: Balanced
Marius Storhaug (MariusStorhaug)
dismissed
Copilot’s stale review
via
November 4, 2026 12:29
4d144df
12 tasks done
Marius Storhaug (MariusStorhaug)
dismissed
Copilot’s stale review
via
November 4, 2026 12:36
62b521b
Marius Storhaug (MariusStorhaug)
dismissed
Copilot’s stale review
via
November 4, 2026 12:56
74bc8b9
Marius Storhaug (MariusStorhaug)
marked this pull request as ready for review
November 4, 2026 14:42
4 tasks
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Shared coding standards use direct en-US guidance and present-tense contracts. Explanations replace idioms and distinguish what each check verifies. Module GUID guidance distinguishes declared metadata from content identity. Commands, examples, anchors, and technical requirements remain unchanged. No consumer action is required.
Changed: Shared standards explain rules directly
Twelve shared standards explain their existing rules with concrete terms and shorter sentences. The guidance covers function reuse, code layout, naming, errors, dependency updates, performance, pre-commit checks, security, documentation, natural language, Markdown, and testing. The Technical Writing Guide is unchanged because it already gives direct source-reading, artifact-format, preservation, and verification instructions.
The changes improve guidance, not the software or enforcement it describes. A local check result is not proof of every standard or every CI result. Native help requirements, exact commands and examples, settings filenames, pinning and security controls, compatibility boundaries, and normative force remain intact. No migration or configuration action is required.
Technical details
Source identities and delivery. The scoped base is
1b0d4893c8fefabe604d04393068a8ff6f848082; the final candidate is74bc8b9e634538cd7fb19ad0bcea694692f3ab67. The comparison changes only 12 eligible Markdown pages, with 163 insertions and 163 deletions. The remote branch and PR report that same head, and the worktree is clean. This is scoped implementation evidence, not an invented publication baseline.The five pushed commits are
2a47f05d5ac4ad49e9ccf54c08b12ef0071a6dbd,4d144df3ed360596e7c9c69662e515aab16c8cc3,2337c5456d51e9212664ae46fae0cd624bfc60f0,62b521bc1fca219fbc1324f86f526d113e478c18, and74bc8b9e634538cd7fb19ad0bcea694692f3ab67. The draft opened immediately after the first complete, one-page Markdown improvement. The remaining pages and the source-backed GUID factual correction were completed in the same PR.Fixed review criteria. The authoritative review sources are pinned to the base commit: Documentation Model, Natural Language, Technical Writing Guide, Markdown, Documentation, and the applicable standard template. Editing a source-owning page does not weaken the criteria.
The official STEMG overview and FAQ were read. The local Issue 9 PDF matched MD5
9c720341c350ed77943b2c73d01c716f. Selected rule summaries and explanations were consulted in its local extract, including terminology, en-US, full word forms, clear sentences, direct instructions, and descriptive structure. The PDF was not exhaustively reviewed or republished. No scan, count, automated approval, or overview is treated as full STE conformance.Owned read and acceptance evidence. Every eligible page was read in full at the fixed baseline. Changed passages and their surrounding rules were reviewed again after editing. The following excerpts are prose acceptance evidence, not required-string tests.
src\docs\Coding-Standards\Code-Layout.mdhold in your headbecomesKeep functions small; formatter acceptance becomes verification of configured rules onlysrc\docs\Coding-Standards\Dependencies.mdmaximizes control but rotsbecomes excluded fixes and delayed adoption;where you sitbecomes source, compatibility risk, and consumer rolesrc\docs\Coding-Standards\Documentation.mdThis is a floor, not a ceilingbecomes a direct native-format requirement for internal and private unitssrc\docs\Coding-Standards\Error-Handling.mdfulfilbecomesfulfill;pushes the bug downstreambecomes failures found by later callerssrc\docs\Coding-Standards\Functions.mdhand-rolled versionbecomescustom implementation; theweak linkguidance explicitly improves the shared function for all callerssrc\docs\Coding-Standards\Markdown.mdlabelledbecomeslabeled;behaviourbecomesbehavior; thehonoursentence becomes direct rule statements;Every code fence has a language tag.identifies the correct elementsrc\docs\Coding-Standards\Naming.mdturns it into a riddlebecomes the direct explanation thatnotReady = falsemeans readydaysUntilExpiry, settings filenames, overrides, and exceptionssrc\docs\Coding-Standards\Natural-Language.mdsource code for humans and agentsbecomes instructions and information; evergreen prose states the supported contractsrc\docs\Coding-Standards\Performance.mdcatastrophic for ten thousandbecomesCode acceptable for ten items can be too slow for ten thousand.; a second measurement replaces ahunchsrc\docs\Coding-Standards\Pre-Commit.mda commit that passes locally passes the gatebecomesA local pass covers only the checks and inputs that local run examined.src\docs\Coding-Standards\Security.mddon't hopebecomesRevoke and rotate it.; the image-secret prohibition is directsrc\docs\Coding-Standards\Testing.mdthe suite stays green foreverbecomes the same wrong anchor in two implementations;the check is decorationbecomes a controlled broken case that must failsrc\docs\Coding-Standards\Writing-Guide.mdThe test-first Task existed before repository edits. Its before-text observations established the prose gaps before implementation. Baseline Markdown, links, Pester, and site checks passed. The final one-off preservation comparison examines all 13 pages and retains 104 heading lines, all 77 original link targets in order, 194 inline code spans, 13 fenced blocks, and 14 normative token occurrences. One official module-manifest reference is added, for 78 extracted link targets. Front matter, Natural Language's tables and blockquoted examples, and all generated index blocks are unchanged. These comparisons establish preservation of the extracted surfaces, not full correctness or STE conformance. Manual reading supplies the meaning comparison. No source-freezing policy test was added.
Final validation at
74bc8b9e634538cd7fb19ad0bcea694692f3ab67.zensical==0.0.59requirementgit diff --checkand worktree checkThe local/CI Zensical versions are reported separately; CI supplies the pinned-version result. No local package was installed, and no dependency was added or changed. The baseline has no tracked
.pre-commit-config.yaml, so no configured local hook run is claimed. A normative requirement for hooks is not evidence that they exist here.Standards and framework alignment.
Fixed criteriabelow means the immutable writing, Markdown, Documentation, and standard-template sources linked above.Fixed modelmeans the immutable Documentation Model. The standard artifact purpose is preserved: rules carry their reasoning, and author actions remain direct imperatives. No framework implementation, schema, supported command, or consumer configuration changes, so no producer/template migration applies.src\docs\Coding-Standards\Code-Layout.mdsrc\docs\Coding-Standards\Dependencies.mdsrc\docs\Coding-Standards\Documentation.mdsrc\docs\Coding-Standards\Error-Handling.mdsrc\docs\Coding-Standards\Functions.mdsrc\docs\Coding-Standards\Markdown.mdsrc\docs\Coding-Standards\Naming.mdsrc\docs\Coding-Standards\Natural-Language.mdsrc\docs\Coding-Standards\Performance.mdsrc\docs\Coding-Standards\Pre-Commit.mdsrc\docs\Coding-Standards\Security.mdsrc\docs\Coding-Standards\Testing.mdOther read-only paths. The following repository paths were read for context, fixed criteria, process, or existing validation. All remain unchanged. Reads are complete except the two explicitly marked ranges.
The local coordination frame was read in full. The PDF was hash-verified; selected extract rules were read at lines 1700-1795, 2540-2570, 3220-3325, 3675-3707, and 3990-4035, with targeted rule-location searches. The official overview and FAQ were read in full, as were the published Documentation Model and Ways of Working index reached through the installed skill routes. Their published aliases redirected to
msx.no; the immutable Git sources remain the criteria. No local issue-template directory or legacy issue-template file exists. The configured parent-relativeAGENTS.mdis absent in this worktree layout; the repository's ownAGENTS.mdis present and was followed.Task progress and issue convergence. All implementation-plan items in #242 are complete for this draft delivery. The Task remains open for its normal merge closure. The convergence search used open MSXOrg/docs issues with
"shared coding" in:title,body,"ASD-STE100" in:title,body, and"Markdown.md" in:title,body. These returned this Task, the 15 separately owned campaign Tasks, and #150 and #186. Both existing non-campaign issues were read in full and are not satisfied by this prose-only diff. No additional issue receives a closing keyword.Accepted differences and open questions. Technical nouns, native syntax, exact examples, normative contracts, direct instructions, intentional negative examples, and generated indexes retain their purpose. Existing heading idioms and contractions remain unchanged to preserve anchors. No new enforcement, functional changes, broad restructure, repository audit files, or edits to the scripts/tests reserved by #240 are included.
The source-precedence question remains unresolved. The coding-standards index says configuration derives from standards. Markdown makes its configuration authoritative if they differ. Implement says repo-local linter configuration wins. This PR preserves these contracts and selects no new precedence rule. The decision-rationale table's relationship to durable decision records remains a scope question. The GUID equivalence is a factual error corrected below, not a new supply-chain policy.
Published-URL checking remains #150, and the redirecting alias/canonical-domain decision remains #186. The absent local pre-commit configuration is not treated as an implemented enforcement gate. One remote push rejection was resolved by a normal retry, without force-pushing. No implementation blocker remains. Full STE conformance is not claimed.
The two checked-in workflows run lint, links, tests, and a Zensical Pages build/deploy without a versioned Release Management route. No release decision block or
release:*label applies. This PR remains draft and assigned to its author, with no auto-merge request. No readiness, merge, auto-merge, or Agent merge action is taken.Related references
Fixed: Declared module identity is distinct from content integrity
A PowerShell module GUID is declared identity metadata, not a content hash. A matching module name, GUID, and version does not prove that the module bytes are unchanged. The dependency table and related explanations distinguish fixed version selection from fixed content.
The existing optional GUID check, version and pinning policy, all
#Requiresexamples, SHA/digest controls, and normative force remain unchanged. No new enforcement mechanism or consumer action is required.Technical details
The official module-manifest GUID reference, verified against Microsoft's immutable source, defines an optional declared identifier that distinguishes same-named modules. The introduction and GUID sections were read; no full-article review is claimed.
Before this correction, Dependencies grouped a module GUID with content hashes as a binding to immutable bytes. The identity/exact table also reported no change before re-pinning and reproducibility as
Yes. Those are descriptive factual claims, not policy choices to preserve when false. The Task plan was extended before editing, with the source and a controlled counterexample.Two locally generated, valid manifests both report module name
Example, GUID11111111-2222-4333-8444-555555555555, and version1.0.0. They use different controlled description text.Test-ModuleManifestconfirms the matching identity/version, whileGet-FileHashreturns different SHA-256 values:95DA5C13989DF87D9E97D0176654FF5D7BC6E8128DA59563FF8F8B58D467F300and0E31D8A4833862CF4AB6459671D112F0246E736EF9F7710A05B9EE89B0F866BF. Matching metadata therefore does not fix manifest bytes. Both temporary fixtures and their empty directories were removed.Commit
74bc8b9e634538cd7fb19ad0bcea694692f3ab67changes only Dependencies, with 7 insertions and 5 deletions. It adds one official source link, distinguishes declared identity from content hashes, qualifies the identity/exact table, and corrects coupled reproducibility inferences. All existing examples, identifiers, links, and normative tokens remain intact.The language-specific owner reports matching clarification in PowerShell
Scripts.md,Requires-Modules.md, andVersion-Constraints.md, in #260 atcd29fcb9d2fe3247aca71ae4f137279c0e8ed1cd. Optional checks, version constraints, exact examples, and pinning policy remain unchanged there. No enforcement mechanism is added. These are separately owned changes, not additional files read or edited in this PR.src\docs\Coding-Standards\Dependencies.mdRelated references