Skip to content

Commit a539cc0

Browse files
docs: align orchestration guidance with trunk based flow
Limit integration branches to module bootstrap, align existing-module guidance with the repository trunk-based development standard, and update the guidance-source link after the documentation repository migration.\n\nCo-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
1 parent 6fbd2b6 commit a539cc0

2 files changed

Lines changed: 32 additions & 28 deletions

File tree

docs/content/guides/module-development-orchestration.md

Lines changed: 31 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,15 @@ description: Coordinate substantial module work across an orchestrator session a
77

88
Substantial module work is easier to review and integrate when it is split into
99
small, independently verifiable changes. Use one parent (orchestrator) session
10-
to own the plan and integration branch, and use narrowly scoped child sessions
11-
for the work that can proceed independently.
10+
to own the plan and integration, and use narrowly scoped child sessions for the
11+
work that can proceed independently.
1212

1313
This complements [Module bootstrap](../get-started/module-bootstrap.md). During
1414
bootstrap, the shared branch is an **integration branch** for the load-bearing
15-
core. For a larger change to an existing module, it is usually a **release
16-
branch** representing the intended release. In both cases, child pull requests
17-
target the shared branch and the parent owns the pull request to `main`.
15+
core. For an existing module, follow the repository's
16+
[trunk-based development](../specification/principles-and-practices.md#trunk-based-development)
17+
default: child pull requests use short-lived branches and target `main`.
18+
Use a stacked pull request only when a dependency requires it.
1819

1920
## Roles and boundaries
2021

@@ -23,13 +24,13 @@ target the shared branch and the parent owns the pull request to `main`.
2324
The orchestrator:
2425

2526
- defines the outcome, boundaries, dependencies, and acceptance criteria
26-
- creates the integration or release branch and its draft pull request to
27-
`main`
27+
- creates the bootstrap integration branch and its draft pull request to
28+
`main` when the module needs one
2829
- gives each child one reviewable unit of work and the branch it must target
2930
- keeps shared design decisions, naming, and cross-cutting changes coherent
3031
- reviews each child pull request, runs the relevant validation, and integrates
3132
it into the shared branch
32-
- owns release readiness and the final pull request to `main`
33+
- owns release readiness for the coordinated change set
3334

3435
The orchestrator coordinates the work; it does not become a second place where
3536
the implementation is silently changed. Changes outside a child's scope should
@@ -43,8 +44,10 @@ describe its change without referring to unrelated planned work.
4344

4445
Each child:
4546

46-
1. starts from the shared integration or release branch
47-
2. opens a **draft pull request** targeting that branch, not `main`
47+
1. starts from `main`, or from the bootstrap integration branch when one is
48+
required
49+
2. opens a **draft pull request** targeting `main`, or the bootstrap integration
50+
branch when one is required
4851
3. implements and validates only its assigned scope
4952
4. updates the documentation and tests required by that scope
5053
5. reports the result to the orchestrator before asking for integration
@@ -93,20 +96,22 @@ specific validation pass.
9396

9497
### Integrate deliberately
9598

96-
Merge children into the shared branch only after their checks and review are
97-
complete. Integrate independent children in any order. For dependent work,
98-
either wait for the prerequisite to merge or make the dependency explicit in a
99-
stacked branch arrangement; do not make a child appear independent by copying
100-
unreviewed changes.
99+
Merge children only after their checks and review are complete. Merge
100+
independent children into `main` in any order. For dependent work, either wait
101+
for the prerequisite to merge or make the dependency explicit in a stacked
102+
branch arrangement; do not make a child appear independent by copying
103+
unreviewed changes. During bootstrap, merge children into the integration
104+
branch, then merge that branch to `main` when the load-bearing core is ready.
101105

102-
Keep the shared branch buildable. Resolve conflicts in the orchestrator's
103-
context, rerun affected checks after integration, and record any cross-cutting
104-
decision in the relevant pull request or issue.
106+
Keep `main` or the bootstrap integration branch buildable. Resolve conflicts in
107+
the orchestrator's context, rerun affected checks after integration, and record
108+
any cross-cutting decision in the relevant pull request or issue.
105109

106110
## Release readiness
107111

108-
Keep the parent pull request to `main` in draft until the shared branch is a
109-
coherent release candidate. Before marking it ready, confirm:
112+
Release readiness is a property of the integrated change, not a reason to keep
113+
a long-lived release branch. Before marking a bootstrap integration pull
114+
request ready, or reporting a coordinated trunk-based change complete, confirm:
110115

111116
- every child pull request is merged, closed with a documented reason, or
112117
explicitly deferred with a follow-up issue
@@ -118,12 +123,13 @@ coherent release candidate. Before marking it ready, confirm:
118123
[test specification](../reference/test-specification.md)
119124
- user-facing documentation, examples, and generated-help inputs describe the
120125
integrated behavior
121-
- the release pull request records the outcome, links the child pull requests,
122-
and identifies related issues without claiming unrelated work
126+
- the parent or coordinating pull request records the outcome, links the child
127+
pull requests when one exists, and identifies related issues without claiming
128+
unrelated work
123129
- the version and prerelease intent match
124130
[Versioning and releases](versioning-and-releases.md)
125131

126-
If the branch is not ready, keep the parent pull request in draft and create
132+
If the change is not ready, keep the relevant pull request in draft and create
127133
another focused child task or follow-up issue. Once it is ready, follow [Your
128134
first release](../get-started/your-first-release.md) and the canonical MSX
129135
[definition of ready for review](https://msx.no/docs/Ways-of-Working/Definition-of-Ready-and-Done/#definition-of-ready-for-review).
@@ -132,10 +138,8 @@ first release](../get-started/your-first-release.md) and the canonical MSX
132138

133139
- Use [Module bootstrap](../get-started/module-bootstrap.md) when a new module
134140
needs a load-bearing core before its first release.
135-
- Use a release branch for a larger post-release effort, as described in
136-
[Principles and practices](../specification/principles-and-practices.md).
137-
- Use an ordinary topic branch for a self-contained change that does not need
138-
coordination across several child sessions.
141+
- For an existing module, use short-lived topic branches targeting `main`, as
142+
described in [Principles and practices](../specification/principles-and-practices.md).
139143
- Use a stacked pull request only when the changes genuinely depend on one
140144
another; see [MSX branching and
141145
merging](https://msx.no/docs/Ways-of-Working/Branching-and-Merging/).

docs/content/reference/guidance-scripts.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,4 +28,4 @@ Run an individual script only when its scenario is suitable for the local enviro
2828

2929
## Maintenance
3030

31-
The files were imported byte-for-byte from [`PSModule/docs/guidance`](https://github.com/PSModule/docs/tree/main/guidance). When that published set changes, import the complete current file from its Git blob into this directory and preserve its contents. Keep this index synchronized with the directory so users can discover every available script.
31+
The files are maintained in the [`guidance` directory](https://github.com/PSModule/Process-PSModule/tree/main/guidance). When that published set changes, import the complete current file from its Git blob into this directory and preserve its contents. Keep this index synchronized with the directory so users can discover every available script.

0 commit comments

Comments
 (0)