Skip to content
Back to skills

Micro Environment Simulator

ASecurity

Build a JavaScript micro environment simulator (abstract state machine) to replay workshop steps and verify environment assumptions.

  • 52 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 3, 2026
ai-agentsjavascriptgojavashellbashnodegitapi

Works with

  • terminal
  • cli
  • api

Security analysis

A100/100

Pro scans all 5 files and shows the line behind each finding

Scanned September 3, 2026

npx -y skills add githubnext/gh-aw-workshop --skill micro-environment-simulator --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Micro Environment Simulator?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Micro Environment Simulator
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/githubnext-micro-environment-simulator/badge)](https://www.skillsdirectory.com/skills/githubnext-micro-environment-simulator)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: micro-environment-simulator
description: Build a JavaScript micro environment simulator (abstract state machine) to replay workshop steps and verify environment assumptions.
disable-model-invocation: true
---

# Micro Environment Simulator

Use this skill when a workflow needs code-based simulation of learner environments before or during workshop replay analysis.

## Goal

Create and run a **JavaScript abstract state machine** that models student execution environments and validates workshop assumptions step-by-step.

## Included Source

Use the checked-in source directly (do not re-implement from scratch):

- `.github/skills/micro-environment-simulator/simulator.js`
- `.github/skills/micro-environment-simulator/workshop-student-journey.js` (workshop-specific example journey)
- `.github/skills/micro-environment-simulator/workshop-student-population.json` (explicit synthetic-population assumptions)

It exports:

- `defaultEnvironmentForStudent(student, dayOfYear)`
- `replayJourney({ student, date, initialState, steps, transitions })`
- `replayWorkshop({ student, date, initialState, steps, transitions })`
- `simulateStudents(students, date, config)`

CLI usage:

```bash
node .github/skills/micro-environment-simulator/simulator.js \
  --students /tmp/gh-aw/agent/sim/data/profiles.json \
  --journey .github/skills/micro-environment-simulator/workshop-student-journey.js \
  --date "$TODAY" \
  --out /tmp/gh-aw/agent/sim/data/environment-replay.json
```

Use `/tmp/gh-aw/agent/sim/data/environment-replay.json` as the source of environment mismatch diagnostics during simulation.

Generate a reproducible synthetic cohort from the maintained population model:

```bash
node .github/skills/micro-environment-simulator/simulator.js \
  --generate-population \
  --population-model .github/skills/micro-environment-simulator/workshop-student-population.json \
  --seed workshop-student-cohort \
  --out /tmp/gh-aw/agent/sim/data/profiles.json
```

The simulator API is workflow-agnostic. Each workflow should provide its own journey `steps` and `transitions`.

## Required Environment Model

Model environment state with explicit fields for:

- OS (`macos`, `linux`, `windows`)
- terminal (`bash`, `zsh`, `powershell`, `cmd`)
- installed software (`gh`, `aw`, and related versions)
- login status (`gh auth status` equivalent, including pre-authenticated Codespaces sessions)
- agent authentication material (`hasApiKey`, `hasCopilotRequestToken`)
- Actions model inference provider configuration (`github`, `anthropic`, `openai`)
- provider-specific Actions secrets (`COPILOT_GITHUB_TOKEN`, `ANTHROPIC_API_KEY`, `OPENAI_API_KEY`)
- workflow permission gate for GitHub inference (`permissions.copilot-requests: write`), including enterprise org-billing behavior and regular org-owned repo fallbacks
- gh token scope (`user`, `org`)
- account type (`personal`, `enterprise-managed`)
- deployment type (`github.com`, `ghec`, `ghes`)
- workspace context (`codespaces`, `local`)

## Approach

1. Represent environment as immutable state snapshots.
2. Define workshop instructions as transitions with:
   - preconditions
   - state updates
   - expected observable outputs
3. Execute deterministic replay per student persona and stop on first violated precondition.
4. Emit structured diagnostics for each failure:
   - step id
   - failed assumption
   - current state
   - remediation hint

## Validation Rules

- Use JavaScript for simulator implementation.
- Keep transition logic deterministic and testable.
- Ensure every instruction checks assumptions before mutating state.
- Distinguish platform-specific command behavior across OS/terminal combinations.
- Distinguish auth/account/deployment constraints (`github.com` vs `ghec` vs `ghes`).
- Model org-scoped Codespaces token behavior where `gh extension install GitHub/gh-aw` can return HTTP 403 and requires install script remediation.

## Output Contract

Return concise JSON-friendly results that workflows can aggregate:

- completion status per student
- first failing step (if any)
- failure reason category
- normalized remediation action
- per-step at-risk counts and conditional dropout rates
- 95% intervals for Monte Carlo sampling uncertainty

Treat population distributions and transition coefficients as assumptions rather than observed learner data. Report that the confidence intervals exclude model and population-assumption uncertainty.

If assumptions hold for a full replay, mark the run successful and include the final state summary.

## Agent-Evaluated Content Assumptions

When an agent evaluates whether current workshop pages establish simulator state, pass the results with `--agent-insights`. Each step insight may include:

- `evaluatedContentHash`: the step's `contentHash` from a simulator run over the current pages
- `evaluations`: named, single-claim records with an `answer` of `YES`, `NO`, or `UNKNOWN` and `file:line` evidence

The simulator ignores evaluations whose content hash no longer matches the mapped workshop pages. Journey code must map known evaluation IDs to specific state fields; never apply arbitrary agent-provided state patches. Keep probability adjustments separate from state assumptions so a favorable score cannot bypass a failed prerequisite.

Files in this skill

  • SKILL.md5.2 KB
  • simulator.js40.6 KB
  • simulator.test.js14.4 KB
  • workshop-student-journey.js51.5 KB
  • workshop-student-population.json2.5 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.