Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 22 additions & 0 deletions .claude-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
"$schema": "https://json.schemastore.org/claude-code-plugin.json",
"name": "wgo",
"displayName": "Whats.Going.On.",
"version": "0.2.0+claude.20260804025205",
"description": "Evidence-led startup and SMB audits with decision-grade reports, detailed control artifacts, and optional draft operator aids.",
"author": {
"name": "Patrick Drolet",
"email": "patrick@drolet.name",
"url": "https://github.com/Patrick-Loves-Espresso"
},
"homepage": "https://wgo-audit.com",
"repository": "https://github.com/wgo-audit/code",
"license": "MIT",
"keywords": [
"audit",
"startup",
"smb",
"due-diligence",
"repo-analysis"
]
}
8 changes: 4 additions & 4 deletions .codex-plugin/plugin.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,10 @@
"author": {
"name": "Patrick Drolet",
"email": "patrick@drolet.name",
"url": "https://github.com/PatD42"
"url": "https://github.com/Patrick-Loves-Espresso"
},
"homepage": "https://github.com/PatD42/whats-going-on",
"repository": "https://github.com/PatD42/whats-going-on",
"homepage": "https://wgo-audit.com",
"repository": "https://github.com/wgo-audit/code",
"license": "MIT",
"keywords": [
"audit",
Expand All @@ -28,7 +28,7 @@
"Interactive",
"Write"
],
"websiteURL": "https://github.com/PatD42/whats-going-on",
"websiteURL": "https://wgo-audit.com",
"defaultPrompt": [
"Run wgo:onboard.",
"Run wgo:audit product-value.",
Expand Down
78 changes: 54 additions & 24 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ When key developers leave, a vendor handoff goes sideways, costs stop making sen

Whats.Going.On. (WGO) is an open-source, prompt-first audit plugin for startups and SMBs. It guides an auditor from a plain-language concern to evidence-backed findings, owned decisions, and reports written for the people who must act on them.

**WGO runs locally with Codex or Claude. There is no hosted service, database, dashboard, or proprietary scoring model.**
**WGO runs locally with Codex, Claude, or OpenCode. There is no hosted service, database, dashboard, or proprietary scoring model.**

> WGO is not another static analyzer. It is a semi-structured audit lead that helps you ask the right questions, inspect the right evidence, preserve uncertainty, and explain the result clearly.

Expand Down Expand Up @@ -43,29 +43,44 @@ Clone WGO, then install it into the project you want to audit.
macOS or Linux:

```bash
git clone https://github.com/PatD42/whats-going-on.git
git clone https://github.com/wgo-audit/code.git whats-going-on
cd whats-going-on
./install.sh /path/to/project
```

Windows:

```bat
git clone https://github.com/PatD42/whats-going-on.git
git clone https://github.com/wgo-audit/code.git whats-going-on
cd whats-going-on
install.bat C:\path\to\project
```

Open the target project in Codex or Claude and start onboarding:
Open the target project in Codex, Claude, or OpenCode and start onboarding:

```text
# Codex
wgo:onboard

# Claude
/wgo_onboard
/wgo:onboard

# OpenCode
/wgo-onboard
```

The installer creates a native Codex plugin at `plugins/wgo` and a native
Claude plugin at `.claude/skills/wgo-claude`. It renders the same canonical
skill for OpenCode at `.opencode/skills/wgo` and adds thin command wrappers at
`.opencode/commands/wgo-*.md`. All three providers are rendered from the same
canonical skill and command files; provider-specific frontmatter is filtered
from installed copies, so the workflow cannot drift between maintained
implementations.
On first use, accept Claude's workspace-trust prompt; if Claude was already
open during installation, run `/reload-plugins` or reopen the project.
Restart OpenCode after installation. Until OpenCode indexes newly installed
skill files, its command wrappers load `.opencode/skills/wgo/SKILL.md` directly.

For a first audit, WGO confirms the company, product, business concern,
additional evidence, and reviewers. It creates
`_whats-going-on-YYYYMMDD/`, dated when onboarding starts, only after approval.
Expand Down Expand Up @@ -113,7 +128,7 @@ flowchart TB
1. **Onboard:** establish the product, mandate, evidence boundary, success criteria, and selected reviewers. WGO also discovers project-local reviewer extensions, but never selects one without approval.
2. **Audit:** inspect one reviewer or run all selected reviewers in coordinator-defined dependency waves; register evidence, ask material questions, and update shared controls.
3. **Check status:** see completed work, open proof, access blockers, risks, decisions, and remaining reviewers.
4. **Summarize:** reconcile the whole audit and create decision-grade reports for each audience.
4. **Summarize:** reconcile the whole audit, create decision-grade reports for each audience, and produce a reconciled API-equivalent audit cost estimate from Codex, Claude, or OpenCode's own session records.
5. **Operationalize when justified:** after a completed audit, explicitly request draft operator aids. WGO will not execute them or change a system.

Run a named reviewer when you want focused control. With no reviewer argument,
Expand All @@ -122,13 +137,14 @@ that do not depend on each other.

## Commands

| Purpose | Codex | Claude |
|---|---|---|
| Start, improve, or compare an audit | `wgo:onboard` with `[compare\|blind-compare] [YYYYMMDD]` | `/wgo_onboard` with `[compare\|blind-compare] [YYYYMMDD]` |
| Run one reviewer or all selected reviewers | `wgo:audit [reviewer-id\|all]` | `/wgo_audit [reviewer-id\|all]` |
| Show truthful progress and blockers | `wgo:status` | `/wgo_status` |
| Reconcile findings and generate reports | `wgo:summarize` | `/wgo_summarize` |
| Draft operator aids after approved synthesis | `wgo:operationalize` | `/wgo_operationalize` |
| Purpose | Codex | Claude | OpenCode |
|---|---|---|---|
| Start, improve, or compare an audit | `wgo:onboard` with `[compare\|blind-compare] [YYYYMMDD]` | `/wgo:onboard` with `[compare\|blind-compare] [YYYYMMDD]` | `/wgo-onboard` with `[compare\|blind-compare] [YYYYMMDD]` |
| Run one reviewer or all selected reviewers | `wgo:audit [reviewer-id\|all]` | `/wgo:audit [reviewer-id\|all]` | `/wgo-audit [reviewer-id\|all]` |
| Show truthful progress and blockers | `wgo:status` | `/wgo:status` | `/wgo-status` |
| Reconcile findings and generate reports | `wgo:summarize` | `/wgo:summarize` | `/wgo-summarize` |
| Produce a reconciled API-equivalent audit cost estimate | `wgo:cost` | `/wgo:cost` | `/wgo-cost` |
| Draft operator aids after approved synthesis | `wgo:operationalize` | `/wgo:operationalize` | `/wgo-operationalize` |

The audit always concerns the full project in the current folder, including all
repository subfolders.
Expand Down Expand Up @@ -198,6 +214,19 @@ An audit should not silently turn into operational work. `wgo:operationalize` is
2. The auditor explicitly requests operationalization.
3. Creating local audit artifacts is permitted.

When operationalization completes, WGO refreshes `controls/cost-estimate.md`
through the operator-aid phase. It preserves the earlier audit-only cost
manifest and excludes both cost-calculation passes from the estimate.

Cost evidence is provider-specific rather than translated into a synthetic
common log format. Codex uses rollout JSONL request usage, Claude uses its root and
subagent JSONL transcripts with Anthropic's dated API rate card, and OpenCode
uses validated session exports with their recorded per-message provider cost.
Every platform freezes the included session graph before two independent
calculations. Missing provenance, malformed exports, unknown rates, and
unexplained zero-cost OpenCode models produce `Unreconciled` or `unpriced`
results instead of a guessed `$0.00`.

It produces a focused four-part operating packet. These are complementary
operating perspectives, not variants of one generic runbook:

Expand Down Expand Up @@ -240,17 +269,18 @@ expansion. It does not quietly treat the referenced material as reviewed.
## Improve Or Compare An Audit

WGO audit state is local, readable Markdown rather than model-specific memory.
An auditor can begin an audit with Codex and later improve the same dated audit
root with Claude, or the reverse. Plain `wgo:onboard` reopens the newest root
read-write, displays its configuration, and asks whether anything needs
updating.

`wgo:onboard compare [YYYYMMDD]` creates today's root and performs a targeted,
read-only comparison against the named completed baseline or the latest
completed audit. `wgo:onboard blind-compare [YYYYMMDD]` performs a full audit
without exposing baseline findings, then compares the completed audits. Both
comparison modes report reviewer-version differences and, when versions differ,
require the auditor to accept the installed versions before proceeding.
An auditor can begin an audit with Codex, Claude, or OpenCode and later improve
the same dated audit root with either of the other providers. The provider's
plain onboarding command reopens the newest root read-write, displays its
configuration, and asks whether anything needs updating.

Adding `compare [YYYYMMDD]` to the provider's onboarding command creates today's
root and performs a targeted, read-only comparison against the named completed
baseline or the latest completed audit. Adding `blind-compare [YYYYMMDD]`
performs a full audit without exposing baseline findings, then compares the
completed audits. Both comparison modes report reviewer-version differences
and, when versions differ, require the auditor to accept the installed versions
before proceeding.

The result is cumulative, but not blindly append-only:

Expand Down
32 changes: 25 additions & 7 deletions commands/audit.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,18 @@ name: audit
description: Run one selected Whats.Going.On. reviewer, or all selected reviewers in dependency waves.
args: "[reviewer-id|all]"
skills: wgo
argument-hint: "[reviewer-id|all]"
disable-model-invocation: true
---

# /audit

Codex users may invoke this as `wgo:audit <reviewer-id>`, `wgo:audit all`, or
`wgo:audit`.
Invoke this as `wgo:audit <reviewer-id>`/`wgo:audit all` in Codex,
`/wgo:audit <reviewer-id>`/`/wgo:audit all` in Claude, or
`/wgo-audit <reviewer-id>`/`/wgo-audit all` in OpenCode.

Resolve the newest dated audit root with
`skills/wgo/references/common/audit-root.md`. Read and write only that root.
Load and use the WGO skill. Resolve the newest dated audit root with its
`references/common/audit-root.md`. Read and write only that root.

## One Reviewer

Expand Down Expand Up @@ -45,7 +48,8 @@ then:
insights when they meet the shared standard, and compact handoff; then update
the checklist and material shared open items.

If this completes the last selected reviewer, automatically run `wgo:summarize`.
If this completes the last selected reviewer, pass the delegated-task lifecycle
gate below, then automatically run `wgo:summarize`.

## All Selected Reviewers

Expand Down Expand Up @@ -83,8 +87,9 @@ checklist. At the end of the wave, surface a qualifying auditor question before
starting dependent work: ask one exact question, wait for its answer, record it
in the brief and its existing `decision-needed` item, then ask another only if
it remains material. Do not let `wgo:audit all` defer such a question merely to
keep the run uninterrupted. Then validate the audit root and start the next
wave. Once all selected reviewers are complete, automatically run
keep the run uninterrupted. Then pass the delegated-task lifecycle gate,
validate the audit root, and start the next wave. Once all selected reviewers
are complete, pass the gate again and automatically run
`wgo:summarize`. Under `complete-missing`, if no reviewer work was missing and
the existing synthesis already covers the unchanged selected reviewer set, do
not rewrite it; report that nothing was missing. Under `rerun-all`, always rerun
Expand All @@ -96,5 +101,18 @@ to reassess them. They do not search for unrelated new findings. For
`blind-compare`, do not give reviewers any baseline content or prior
identifiers.

## Delegated-Task Lifecycle Gate

Before ending a reviewer, advancing a dependency wave, or starting synthesis,
recursively inventory every WGO task spawned during the current audit from the
recorded collaboration and task-lifecycle provenance. Require exactly one
terminal outcome (`completed`, `failed`, `cancelled`, or `interrupted`) for
every recorded start. Do not infer closure from a report, checklist state,
message, or worker disappearance. Wait for a running task; if a start remains
open, has multiple terminal outcomes, or cannot be correlated unambiguously,
stop the transition and identify the exact task/session. A failed, cancelled,
or interrupted task is lifecycle-closed but still follows the existing
dependency and audit-limitation rules.

Do not mark work complete merely because a report exists. A bounded,
completed-with-open-verification conclusion is valid when its limits are clear.
36 changes: 36 additions & 0 deletions commands/cost.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
---
name: cost
description: Produce a reconciled API-equivalent cost estimate for a completed Whats.Going.On. audit.
skills: wgo
disable-model-invocation: true
---

# /cost

Invoke this as `wgo:cost` in Codex, `/wgo:cost` in Claude, or `/wgo-cost` in
OpenCode.

Load and use the WGO skill. Resolve the newest dated audit root with its
`references/common/audit-root.md`, then read the audit platform recorded in
`audit-brief.md` and run exactly one matching workflow:

- Codex: `references/common/cost-estimation.md`;
- Claude: `references/common/cost-estimation-claude.md`; or
- OpenCode: `references/common/cost-estimation-opencode.md`.

Do not inspect a provider's session store or apply its usage schema to an audit
recorded on another platform. If the platform is missing, ambiguous, or
unsupported, write an `Unreconciled` cost control naming that limitation rather
than guessing.

This is a read-only analysis of accessible provider-native session records that
writes `<audit-root>/controls/cost-estimate.md` and its frozen calculation
evidence.
Do not install a package, invoke `ccusage`, add a helper program, or use an
OS-specific binary.
The active-platform coordinator discovers the audit descendants from recorded
collaboration and task-lifecycle provenance, freezes the manifest before any
calculation, and runs exactly two independent calculations over that unchanged
manifest using the worker configuration in the selected provider workflow.
Never identify an included session solely by date, CWD, folder, or model; those
may corroborate recorded provenance only.
7 changes: 5 additions & 2 deletions commands/onboard.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,15 @@ name: onboard
description: Design or resume a Whats.Going.On. audit for the current project folder.
args: "[compare|blind-compare] [YYYYMMDD]"
skills: wgo
argument-hint: "[compare|blind-compare] [YYYYMMDD]"
disable-model-invocation: true
---

# /onboard

Resolve audit roots with `skills/wgo/references/common/audit-root.md`, then run
`skills/wgo/references/common/onboarding.md`.
Load and use the WGO skill. Resolve audit roots with its
`references/common/audit-root.md`, then run its
`references/common/onboarding.md`.

The audit covers the full current project folder at detailed depth. Quietly
perform read-only discovery and confirm company/product context. When a prior
Expand Down
17 changes: 13 additions & 4 deletions commands/operationalize.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,19 @@
name: operationalize
description: Turn an approved synthesis into explicitly untested, source-linked operator aids without executing procedures or changing systems.
skills: wgo
disable-model-invocation: true
---

# /operationalize

Codex users may invoke this as `wgo:operationalize`.
Invoke this as `wgo:operationalize` in Codex, `/wgo:operationalize` in Claude,
or `/wgo-operationalize` in OpenCode.

Resolve the newest dated audit root with
`skills/wgo/references/common/audit-root.md`.
Load and use the WGO skill. Resolve the newest dated audit root with its
`references/common/audit-root.md`.

Run the complete workflow in `skills/wgo/references/common/operationalization.md`.
Run the complete workflow in its
`references/common/operationalization.md`.

Hard rules:

Expand All @@ -25,3 +28,9 @@ Hard rules:
- Create an operating-control strategy only when the completed controls need an explicit stabilization and authority model; it is a derived decision aid, not a second backlog or a runbook.
- Create the four-part transition packet at `operator-aids/`: `replacement-maintainer`, `recovery`, `observability`, and `iam-and-credential-control`. Keep them separate, cross-linked, and evidence-bounded.
- Do not create a fixed-size 72-hour mission board. Generate the execution-priority taxonomy instead.
- After the packet is complete, emit the operationalization-complete cutoff and
rerun the Codex, Claude, or OpenCode cost workflow selected from the platform
recorded in `audit-brief.md`. Update
`controls/cost-estimate.md` through operationalization without modifying the
frozen audit-only cost evidence or charging either cost-calculation phase to
the audit.
8 changes: 5 additions & 3 deletions commands/status.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,16 @@
name: status
description: Show truthful Whats.Going.On. audit progress, blockers, and material open items.
skills: wgo
disable-model-invocation: true
---

# /status

Codex users may invoke this as `wgo:status`.
Invoke this as `wgo:status` in Codex, `/wgo:status` in Claude, or
`/wgo-status` in OpenCode.

Resolve the newest dated audit root with
`skills/wgo/references/common/audit-root.md`. Read, without modifying:
Load and use the WGO skill. Resolve the newest dated audit root with its
`references/common/audit-root.md`. Read, without modifying:

- `<audit-root>/audit-checklist.md`
- `<audit-root>/controls/open-items.md`
Expand Down
18 changes: 14 additions & 4 deletions commands/summarize.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,18 @@
name: summarize
description: Reconcile completed Whats.Going.On. reviewers and create decision-grade audience reports.
skills: wgo
disable-model-invocation: true
---

# /summarize

Codex users may invoke this as `wgo:summarize`.
Invoke this as `wgo:summarize` in Codex, `/wgo:summarize` in Claude, or
`/wgo-summarize` in OpenCode.

Resolve the newest dated audit root with
`skills/wgo/references/common/audit-root.md`.
Load and use the WGO skill. Resolve the newest dated audit root with its
`references/common/audit-root.md`.

Run `skills/wgo/references/common/synthesis.md`. Read completed
Run its `references/common/synthesis.md`. Read completed
reviewer reports, their handoffs, and linked evidence/artifacts directly.
Reconcile before drafting and preserve source-access limits, uncertainty, and
evidence cutoff.
Expand All @@ -21,5 +23,13 @@ and `technical-lead-notes.md` at the audit root. Include an owner-assigned
30–90 day section only where evidence supports it. Do not create a separate
reconciliation command, decision queue, or action backlog.

After synthesis validation succeeds, run the complete `wgo:cost` phase before
asking about operationalization. It must discover and freeze the audit-session
manifest itself, select the provider workflow from `audit-brief.md`, use its two
independent verification passes over that manifest, and write
`controls/cost-estimate.md`. Link that control from `index.md` and the three
audience reports. A cost result may be `Unreconciled`; do not suppress it or
replace it with a precise total.

After the summary is complete, ask exactly: `Should I proceed with
wgo:operationalize?` Do not draft operator aids until the auditor answers yes.
Loading