-
Notifications
You must be signed in to change notification settings - Fork 322
[architecture] Update architecture diagram - 2026-04-03 #24264
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| @@ -1,45 +1,41 @@ | ||||||||||||||||||
| # Architecture Diagram | ||||||||||||||||||
|
|
||||||||||||||||||
| > Last updated: 2026-03-31 · Source: [Run §23789178746](https://github.com/github/gh-aw/actions/runs/23789178746) | ||||||||||||||||||
| > Last updated: 2026-04-03 · Source: [Issue #aw_arch01](https://github.com/github/gh-aw/issues) | ||||||||||||||||||
|
|
||||||||||||||||||
| ## Overview | ||||||||||||||||||
|
|
||||||||||||||||||
| This diagram shows the package structure and dependencies of the `gh-aw` codebase. | ||||||||||||||||||
|
|
||||||||||||||||||
| ``` | ||||||||||||||||||
| ┌─────────────────────────────────────────────────────────────────────────────────────────────────┐ | ||||||||||||||||||
| │ ENTRY POINTS │ | ||||||||||||||||||
| │ ┌──────────────────────────────────────────┐ ┌─────────────────────────────────────────┐ │ | ||||||||||||||||||
| │ │ cmd/gh-aw │ │ cmd/gh-aw-wasm │ │ | ||||||||||||||||||
| │ │ GitHub CLI extension binary │ │ WebAssembly target │ │ | ||||||||||||||||||
| │ └──────┬──────────────────────┬────────────┘ └──────────────────┬──────────────────────┘ │ | ||||||||||||||||||
| │ │ │ │ │ | ||||||||||||||||||
| ├─────────┼──────────────────────┼────────────────────────────────────┼────────────────────────────┤ | ||||||||||||||||||
| │ │ CORE PACKAGES │ │ │ | ||||||||||||||||||
| │ ▼ ▼ ▼ │ | ||||||||||||||||||
| │ ┌──────────────┐ ┌──────────────────────┐ ┌──────────────────────┐ ┌────────────────┐ │ | ||||||||||||||||||
| │ │ pkg/cli │──▶ │ pkg/workflow │──▶ │ pkg/parser │ │ pkg/console │ │ | ||||||||||||||||||
| │ │ Command │ │ Workflow compilation │ │ Markdown/YAML │ ◀─│ Terminal UI │ │ | ||||||||||||||||||
| │ │ impls │ │ engine │ │ parsing │ │ rendering │ │ | ||||||||||||||||||
| │ └──────────────┘ └──────────────────────┘ └──────────────────────┘ └────────────────┘ │ | ||||||||||||||||||
| │ │ | ||||||||||||||||||
| │ ↕ all core packages also use constants, types, and utilities ↕ │ | ||||||||||||||||||
| │ │ | ||||||||||||||||||
| │ ┌────────────────────────────────────────────────────────────────────────────┐ │ | ||||||||||||||||||
| │ │ pkg/constants · pkg/types (shared primitives, no dependencies) │ │ | ||||||||||||||||||
| │ └────────────────────────────────────────────────────────────────────────────┘ │ | ||||||||||||||||||
| ├─────────────────────────────────────────────────────────────────────────────────────────────────┤ | ||||||||||||||||||
| │ UTILITIES │ | ||||||||||||||||||
| │ ┌──────────┐ ┌─────────────┐ ┌────────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ | ||||||||||||||||||
| │ │pkg/logger│ │pkg/stringutil│ │pkg/fileutil│ │pkg/gitutil│ │pkg/styles│ │ pkg/tty │ │ | ||||||||||||||||||
| │ └──────────┘ └─────────────┘ └────────────┘ └──────────┘ └──────────┘ └──────────┘ │ | ||||||||||||||||||
| │ ┌──────────┐ ┌─────────────┐ ┌────────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ | ||||||||||||||||||
| │ │pkg/envutil│ │pkg/repoutil │ │pkg/sliceutil│ │pkg/semver│ │pkg/timeutil│ │pkg/mathutil│ │ | ||||||||||||||||||
| │ └──────────┘ └─────────────┘ └────────────┘ └──────────┘ └──────────┘ └──────────┘ │ | ||||||||||||||||||
| │ ┌─────────────┐ │ | ||||||||||||||||||
| │ │ pkg/testutil│ (test support only) │ | ||||||||||||||||||
| │ └─────────────┘ │ | ||||||||||||||||||
| └─────────────────────────────────────────────────────────────────────────────────────────────────┘ | ||||||||||||||||||
| ┌────────────────────────────────────────────────────────────────────────────────────────────────────┐ | ||||||||||||||||||
| │ ENTRY POINTS │ | ||||||||||||||||||
| │ ┌────────────────────────────┐ ┌────────────────────────┐ ┌────────────────────────────────┐ │ | ||||||||||||||||||
| │ │ cmd/gh-aw │ │ cmd/gh-aw-wasm │ │ internal/tools/ (×2) │ │ | ||||||||||||||||||
| │ │ GitHub CLI extension bin │ │ WebAssembly target │ │ actions-build, gen-metadata │ │ | ||||||||||||||||||
| │ └────────────┬───────────────┘ └────────────┬───────────┘ └──────────────┬─────────────────┘ │ | ||||||||||||||||||
|
Comment on lines
+12
to
+15
|
||||||||||||||||||
| │ ┌────────────────────────────┐ ┌────────────────────────┐ ┌────────────────────────────────┐ │ | |
| │ │ cmd/gh-aw │ │ cmd/gh-aw-wasm │ │ internal/tools/ (×2) │ │ | |
| │ │ GitHub CLI extension bin │ │ WebAssembly target │ │ actions-build, gen-metadata │ │ | |
| │ └────────────┬───────────────┘ └────────────┬───────────┘ └──────────────┬─────────────────┘ │ | |
| │ ┌────────────────────────────┐ ┌────────────────────────┐ ┌──────────────────────────────────────────────┐ │ | |
| │ │ cmd/gh-aw │ │ cmd/gh-aw-wasm │ │ internal/tools/ (×2) │ │ | |
| │ │ GitHub CLI extension bin │ │ WebAssembly target │ │ actions-build, generate-action-metadata │ │ | |
| │ └────────────┬───────────────┘ └────────────┬───────────┘ └─────────────────────┬────────────────────────┘ │ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The "Source" link text and URL look incorrect: it references "Issue #aw_arch01" but links to the generic issues list (…/gh-aw/issues) rather than a specific issue or the workflow run that generated the diagram (as described in the PR). Please update this to the correct source (e.g., link directly to the generating run or a real issue URL).