Skip to content

Commit 6f193a5

Browse files
committed
Rework
1 parent ab8cbdb commit 6f193a5

236 files changed

Lines changed: 1113 additions & 1517 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.

CONTRIBUTING.md

Lines changed: 25 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -15,45 +15,42 @@ or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any addi
1515

1616
## Content architecture contract
1717

18-
Challenge content lives under `modules/<moduleId>/challenges/<slug>/`. The build reads
18+
Activity content lives under `modules/<moduleId>/challenges/<slug>/`. The build reads
1919
`meta.yml` as the single source of truth and copies `README.md` and `COACH.md` into the
2020
generated Pages data. Do not hand-edit generated files under `docs/assets/data/`; run
2121
`npm run build` instead.
2222

2323
Outcome journeys live in [`outcomes.json`](outcomes.json). Use that file to curate existing
24-
challenges into adoption, migration, security, agentic workflow, and cloud DevOps paths
25-
without duplicating challenge content.
24+
activities into adoption, migration, security, agentic workflow, and cloud DevOps paths
25+
without duplicating activity content.
2626

27-
Every challenge directory must contain:
27+
Every activity directory must contain:
2828

2929
```text
3030
meta.yml # catalog metadata and dependency contract
31-
README.md # student guide
31+
README.md # customer delivery team guide
3232
COACH.md # facilitator guide, hints, expected outputs, common failures
3333
```
3434

3535
### `meta.yml` required fields
3636

3737
| Field | Contract |
3838
|---|---|
39-
| `id` | Globally unique challenge id. Use `<module>-<local-id>` (`ghec-ch01`, `ghas-02`, `ghaw-15`, `sre-agent-04`). Ids are stable and may have intentional gaps. |
39+
| `id` | Globally unique activity ID. Use `<module>-<local-id>` (`ghec-ch01`, `ghas-02`, `ghaw-15`, `sre-agent-04`). IDs are stable and may have intentional gaps. |
4040
| `title` | Short catalog title. |
4141
| `module` | One of `ghec`, `ghas`, `ghaw`, `sre-agent`. |
4242
| `track` | Track slug for the module; must match `docs/build.js` module config. |
4343
| `difficulty` | `beginner`, `intermediate`, or `advanced`. |
44-
| `duration_minutes` | Estimated student time in minutes. |
45-
| `prerequisites` | Challenge ids that must be completed first. Empty means independent except for stated environment setup. |
46-
| `prerequisite_capabilities` | Skills or access needed before starting; do not use this for challenge ids. |
44+
| `duration_minutes` | Estimated time for a delivery team member in minutes. |
45+
| `prerequisites` | Activity ids that must be completed first. Empty means independent except for stated environment setup. |
46+
| `prerequisite_capabilities` | Skills or access needed before starting; do not use this for activity ids. |
4747
| `description` | One-sentence catalog summary. |
48-
| `success_criteria` | Observable outcomes that prove the challenge is complete. |
49-
| `take_home_action` | Imperative production-adoption step the reader repeats in **their own org/tenant** (e.g. "In your own org, enforce push protection org-wide"). Plain scalar; drives real GitHub usage, not a coaching chat. |
50-
| `take_home_owner` | Who owns the rollout: `developer`, `platform-governance`, or `solution-architect`. |
51-
| `take_home_signal` | Observable production signal proving it landed (e.g. "Secret push protection blocks a real push in your org"). |
48+
| `success_criteria` | Observable outcomes that prove the activity is complete. |
5249
| `tags` | Search/filter terms. Use lowercase kebab-case where possible. |
5350
| `app_dependency` | Runtime/sample dependency (`none`, `juice-shop`, `contoso-claims`, `contoso-app`, `seed`, or `seed-repo`). |
54-
| `emu_compatible` | `true` when the challenge works in an EMU-controlled org; otherwise `false`. |
51+
| `emu_compatible` | `true` when the activity works in an EMU-controlled org; otherwise `false`. |
5552
| `min_environment` | Lowest required scope: `org`, `repo`, or `codespace`. |
56-
| `provision_creates` | Human-readable resources created by setup or student steps. Empty list is allowed. |
53+
| `provision_creates` | Human-readable resources created by setup or delivery team member actions. Empty list is allowed. |
5754
| `source_repo` | Source repository provenance. |
5855
| `source_path` | Repository-relative source path. Do not use absolute paths or `..`. |
5956
| `license` | Source license; currently `MIT`. |
@@ -63,8 +60,8 @@ Optional fields:
6360
| Field | Contract |
6461
|---|---|
6562
| `tier` | `setup`, `core`, `stretch`, or `bonus`. Defaults to `core` in the build. |
66-
| `references` | Source-backed docs and product links used by students or coaches. |
67-
| `outcomes` | Outcome ids from `outcomes.json` when a challenge needs explicit membership beyond journey curation. |
63+
| `references` | Source-backed docs and product links used by customer delivery team members or coaches. |
64+
| `outcomes` | Outcome ids from `outcomes.json` when a activity needs explicit membership beyond journey curation. |
6865
| `personas` | Personas such as `platform-engineer`, `security-lead`, `developer`, `sre`, or `migration-lead`. |
6966
| `business_value` | Value tags such as `reduce-migration-risk`, `shift-left-security`, or `automate-repetitive-work`. |
7067
| `adoption_stage` | `assess`, `pilot`, `scale`, or `operate`. |
@@ -84,23 +81,23 @@ Each outcome requires:
8481
| `adoption_stage` | Stages covered by the journey: `assess`, `pilot`, `scale`, `operate`. |
8582
| `business_value` | Searchable value tags. |
8683
| `source_platforms` | Relevant starting platforms, such as `azure-devops`, `bitbucket`, `gitlab`, `github`, or `greenfield`. |
87-
| `challenge_ids` | Ordered list of existing challenge ids included in the journey. |
84+
| `challenge_ids` | Ordered list of existing activity ids included in the journey. |
8885
| `success_metrics` | Production-observable outcomes the customer's own team can verify in their GitHub organization or Azure tenant. |
8986

90-
## Per-challenge QA rubric
87+
## Per-activity QA rubric
9188

92-
Use this 100-point rubric for every new or materially changed challenge. Record manual
89+
Use this 100-point rubric for every new or materially changed activity. Record manual
9390
review results in PR comments or issue bodies, not in throwaway repo planning files.
9491

9592
| Area | Points | Pass standard |
9693
|---|---:|---|
9794
| Metadata and provenance | 15 | Required fields complete; ids stable; module/track valid; source attribution present; generated catalog matches source. |
98-
| Independence and setup | 20 | Challenge can be started from a clean environment with only listed prerequisites/capabilities; no hidden state from previous challenges; app dependency acquisition is documented. |
99-
| Student guide quality | 20 | README has clear goal, steps, validation commands/screens, expected outputs, cleanup notes where needed, and no dead/internal-only links. |
95+
| Independence and setup | 20 | Activity can be started from a clean environment with only listed prerequisites/capabilities; no hidden state from previous activities; app dependency acquisition is documented. |
96+
| Customer delivery team guide quality | 20 | README has clear goal, steps, validation commands/screens, expected outputs, cleanup notes where needed, and no dead/internal-only links. |
10097
| Coach guide quality | 15 | COACH covers facilitator intent, hints, expected solution/evidence, timing, and common failure modes without leaking secrets. |
10198
| Validation evidence | 15 | Build/audit pass; success criteria are objectively checkable; commands are current; external dependency versions or availability claims are source-backed. |
10299
| Accessibility and operational safety | 10 | Works in intended org/account type; calls out Azure/billing/permissions risk; avoids destructive defaults and committed secrets. |
103-
| Catalog fit and coverage | 5 | Challenge fills a real module/track need, avoids unnecessary duplication, and has useful tags for discovery. |
100+
| Catalog fit and coverage | 5 | Activity fills a real module/track need, avoids unnecessary duplication, and has useful tags for discovery. |
104101

105102
Score bands:
106103

@@ -115,14 +112,14 @@ Severity levels:
115112

116113
| Severity | Definition | Merge policy |
117114
|---|---|---|
118-
| P0 | Build/audit failure, broken prerequisite graph, missing guide, unsafe instruction, secret exposure, or challenge cannot start. | Blocks merge. |
115+
| P0 | Build/audit failure, broken prerequisite graph, missing guide, unsafe instruction, secret exposure, or activity cannot start. | Blocks merge. |
119116
| P1 | Core learning path fails, hidden dependency, stale product instruction, dead required link, or misleading success criteria. | Blocks merge unless owner accepts documented risk. |
120-
| P2 | Coach/student quality gap, weak evidence, missing optional metadata, incomplete cleanup, or confusing catalog fit. | May merge with assigned follow-up. |
117+
| P2 | Coach/delivery team member quality gap, weak evidence, missing optional metadata, incomplete cleanup, or confusing catalog fit. | May merge with assigned follow-up. |
121118
| P3 | Editorial polish, tag improvement, minor timing mismatch, or optional reference update. | Non-blocking. |
122119

123120
### QA inventory format
124121

125-
For audit-friendly reviews, use one inventory object per challenge. JSON Lines works well
122+
For audit-friendly reviews, use one inventory object per activity. JSON Lines works well
126123
in PR comments, issue bodies, or generated local reports because it is machine-diffable
127124
and does not require a repo planning markdown file.
128125

@@ -138,10 +135,10 @@ Required inventory keys: `id`, `reviewed_at`, `reviewer`, `score`, `severity`,
138135

139136
## Catalog coverage and backlog decisions
140137

141-
Use these rules when deciding whether a missing challenge belongs in the backlog:
138+
Use these rules when deciding whether a missing activity belongs in the backlog:
142139

143140
1. Preserve current scoped modules before adding new scope.
144-
2. Prefer a gap-filling challenge over a duplicate topic.
141+
2. Prefer a gap-filling activity over a duplicate topic.
145142
3. Do not restore intentionally removed ids unless the original scope decision is reversed.
146143
4. If a candidate needs a new product area, create a new module/track proposal rather than
147144
stretching an existing module.

README.md

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
# Agentic DevOps
22

3-
One repo. One GitHub Pages site. Five adoption journeys, four delivery session modules, 64 challenges, zero configuration drama.
3+
One repo. One GitHub Pages site. Five adoption journeys, four delivery session modules, 64 activities, zero configuration drama.
44

5-
> **Bring your own.** These challenges are built to run on **your** tenant — work each one
5+
> **Bring your own.** These activities are built to run on **your** tenant — work each one
66
> against your own applications, repositories, and data so the result keeps running in
77
> production after the session, not just as an upskilling exercise. The sample apps
88
> (OWASP Juice Shop, the Grubify sample, seed repos) are only a fallback so no one is
9-
> blocked. Wherever a challenge says "bring your own," start from your real work; the
9+
> blocked. Wherever a activity says "bring your own," start from your real work; the
1010
> setup script and sample are there when you don't yet have a candidate.
1111
1212
## Outcomes
@@ -23,21 +23,21 @@ The site is organized around customer adoption outcomes first, then platform mod
2323

2424
## Modules
2525

26-
| Module ID | Name | Challenges | Tracks |
26+
| Module ID | Name | Activities | Tracks |
2727
|---|---|---|---|
2828
| `ghec` | GitHub Enterprise Cloud | 27 | Developer Flow, Admin & Governance, Security, Automation & AI, Migration |
2929
| `ghas` | GitHub Advanced Security | 7 | Security |
3030
| `ghaw` | GitHub Agentic Workflows | 25 | Hello, Agent, Repo Concierge, Continuous Intelligence, Production Patterns |
3131
| `sre-agent` | SRE Agent | 5 | Azure SRE Agent |
3232

33-
> **Total:** 64 challenges across 4 modules.
33+
> **Total:** 64 activities across 4 modules.
3434
3535
## Architecture
3636

3737
```
3838
modules/<moduleId>/challenges/<slug>/
3939
meta.yml ← single source of truth (build reads ONLY this)
40-
README.md ← student guide
40+
README.md ← customer delivery team guide
4141
COACH.md ← coach guide (facilitator notes, expected outputs, hints)
4242
4343
@@ -47,7 +47,7 @@ modules/<moduleId>/challenges/<slug>/
4747
docs/assets/data/
4848
platform.json ← full catalog (modules + challenges)
4949
dependency-graph.json ← prereq graph (nodes + edges)
50-
challenges/<id>/README.md ← copied student guide (served by Pages)
50+
challenges/<id>/README.md ← copied customer delivery team guide (served by Pages)
5151
challenges/<id>/COACH.md ← copied coach guide
5252
```
5353

@@ -68,7 +68,7 @@ Output lands in `docs/assets/data/`. The Pages site (`docs/`) is fully self-cont
6868
```
6969
✓ built platform.json (modules: 4, challenges: N)
7070
✓ built dependency-graph.json (nodes: N, edges: N)
71-
✓ copied student/coach guides → docs/assets/data/challenges/
71+
✓ copied customer delivery team/coach guides → docs/assets/data/challenges/
7272
```
7373

7474
Exit code 0 = success. Non-zero = validation errors (check stderr).
@@ -87,7 +87,7 @@ To prefetch everything during clone, use `git clone --recurse-submodules <repo>`
8787
## Validation
8888

8989
The build validates:
90-
- Every `prerequisites` entry references a real challenge `id` in the catalog.
90+
- Every `prerequisites` entry references a real activity `id` in the catalog.
9191
- No circular dependencies.
9292
- Warns on missing optional fields.
9393

@@ -107,7 +107,7 @@ CI runs the same build on every PR and fails the check if validation errors are
107107
See [`CONTRIBUTING.md`](CONTRIBUTING.md) for the `meta.yml` field contract and authoring guide.
108108
See [`modules/README.md`](modules/README.md) for the module and directory layout.
109109
See [`docs/EXTERNAL-REPOS.md`](docs/EXTERNAL-REPOS.md) for how external dependencies (Juice Shop, sample apps, third-party delivery sessions) are managed and pinned.
110-
Use `modules/_TEMPLATE/challenge/` as your starting point for new challenges.
110+
Use `modules/_TEMPLATE/challenge/` as your starting point for new activities.
111111

112112
## Deploy
113113

0 commit comments

Comments
 (0)