Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
229 commits
Select commit Hold shift + click to select a range
7758871
fix: add venv to goga lint ignore
trifonovmixail Aug 27, 2026
162ec1c
feat: goga-review dispatch by artifact filename under .goga/history
trifonovmixail Aug 27, 2026
8487282
feat: goga-review-arch reads artifacts from .goga/history
trifonovmixail Aug 27, 2026
bdcd84d
feat: goga-review-design reads design from .goga/history
trifonovmixail Aug 27, 2026
fadd5f3
feat: goga-review-plan reads plan and design from .goga/history
trifonovmixail Aug 27, 2026
23c733e
feat: goga-review-task reads task from .goga/history
trifonovmixail Aug 27, 2026
9ae5d35
feat: goga-apply reads architecture plan from .goga/history
trifonovmixail Aug 27, 2026
e8248d9
feat: goga-define saves PRD to .goga/history
trifonovmixail Aug 27, 2026
7a678d3
feat: goga-discover saves ADR to .goga/history
trifonovmixail Aug 27, 2026
218bf8a
feat: task-formulation skills save task to .goga/history
trifonovmixail Aug 27, 2026
871afb5
feat: brainstorm pipeline writes arch plan to .goga/history
trifonovmixail Aug 27, 2026
2d049ad
feat: design and plan skills use .goga/history paths
trifonovmixail Aug 27, 2026
0b00f5e
feat: refinement pipeline artifacts under .goga/history
trifonovmixail Aug 27, 2026
81179cc
feat: development pipeline and workflow use .goga/history artifacts
trifonovmixail Aug 27, 2026
985d31b
feat: development pipeline stage prompts use full .goga/history paths
trifonovmixail Aug 27, 2026
b538bd0
fix: topic resolution uses topic directory name under .goga/history
trifonovmixail Aug 27, 2026
340aab7
refactor: unify artifact path grammar and topic slug rule across skil…
trifonovmixail Aug 27, 2026
f9025b9
fix: goga apply skill
trifonovmixail Aug 27, 2026
713cbf3
feat: separated review and goga history in gitignore
trifonovmixail Aug 27, 2026
e0e33fa
feat: contracts for pipeline -b/--branch preparation and install post…
trifonovmixail Aug 27, 2026
c4d782a
fix: build script in development workflow
trifonovmixail Aug 27, 2026
f4efba0
feat: add branch.py slug, current-branch, and occupancy primitives fo…
trifonovmixail Aug 27, 2026
76f9046
feat: add ensure_pipeline_branch orchestrator for pipeline -b
trifonovmixail Aug 27, 2026
aac5c4b
feat: wire -b/--branch option and branch procedure into pipeline run …
trifonovmixail Aug 27, 2026
069d9d4
feat: export full 9-name pipeline contract API from cell facade
trifonovmixail Aug 27, 2026
7452c1e
feat: pipeline -b branch-flow integration tests through the real command
trifonovmixail Aug 27, 2026
a9ee411
feat: install cell hook.py with user resolution, hook invocation, and…
trifonovmixail Aug 27, 2026
c0661fe
feat: wire install hooks and --local tool-name grammar into install c…
trifonovmixail Aug 27, 2026
30b2864
feat: export full 5-name install contract API from cell facade
trifonovmixail Aug 27, 2026
dd3eb8c
feat: add install hook flow end-to-end integration tests
trifonovmixail Aug 27, 2026
213da38
fix: address code review findings
trifonovmixail Aug 28, 2026
6f4d732
fix: address code review findings
trifonovmixail Aug 28, 2026
70f64e3
fix: address code review findings
trifonovmixail Aug 28, 2026
08db50d
fix: align manifests and usages with implementation, cover empty-slug…
trifonovmixail Aug 28, 2026
b75ebf3
feat: thread base_ref through build review contracts
trifonovmixail Aug 28, 2026
0bf39fc
feat: add review-scoped base_ref/patience to project config model and…
trifonovmixail Aug 28, 2026
8801146
feat: add base_ref scalar flag mapping to goga/ralphex
trifonovmixail Aug 28, 2026
28c3751
feat: resolve review-scoped base_ref and patience in review options
trifonovmixail Aug 28, 2026
653f2f5
feat: compose review-scoped options into review-carrying build passes
trifonovmixail Aug 28, 2026
37c6277
feat: forward host --base-ref option into the build container
trifonovmixail Aug 28, 2026
7f7ea80
feat: dogfood review base bounds and document base_ref/patience
trifonovmixail Aug 28, 2026
a3c9fdf
feat: add base_ref end-to-end integration tests
trifonovmixail Aug 28, 2026
2ba67d6
fix: address code review findings
trifonovmixail Aug 28, 2026
8aa79a1
fix: align review-scoped docs and tests with implementation
trifonovmixail Aug 28, 2026
1ae445c
feat: build review config
trifonovmixail Aug 28, 2026
fda1859
feat: add history cell architecture for topic paths and CLI
trifonovmixail Aug 28, 2026
11c9d5f
feat: add goga/history/git leaf cell with branch reader and tests
trifonovmixail Aug 28, 2026
5757815
feat: add goga/history/naming.py with normalize_topic_slug and curren…
trifonovmixail Aug 28, 2026
3398032
feat: add goga/history/paths leaf module with path routines and tests
trifonovmixail Aug 28, 2026
1da8781
feat: add goga/history/status module with TopicStatus, TopicRecord, a…
trifonovmixail Aug 28, 2026
ec976ea
feat: add goga/history/tree module with HistoryYear and collect_histo…
trifonovmixail Aug 28, 2026
57b72dc
feat: finalize goga/history facade with git embedding and 13-name __a…
trifonovmixail Aug 28, 2026
ce10774
feat: migrate pipeline cell atomically to the goga.history domain (tw…
trifonovmixail Aug 28, 2026
9b6f2d3
feat: add goga/commands/history render module with the tree and statu…
trifonovmixail Aug 28, 2026
ed76333
feat: add goga history click group with list/status/path/ensure subco…
trifonovmixail Aug 28, 2026
8af0c23
feat: add goga history CLI integration tests for list/status/path/ens…
trifonovmixail Aug 28, 2026
ec0aa1d
feat: register history group in goga/commands facade and root CLI app
trifonovmixail Aug 28, 2026
4bdd983
feat: migrate development workflow build script to goga history path
trifonovmixail Aug 28, 2026
8e1fac1
feat: migrate 24 asset files to goga history path artifact addressing
trifonovmixail Aug 28, 2026
7120f9a
fix: address code review findings
trifonovmixail Aug 28, 2026
8ab4d15
fix: describe current state instead of migration history in comments
trifonovmixail Aug 28, 2026
b8bde15
fix: skills for goga history workaround
trifonovmixail Aug 28, 2026
a821884
fix: skills for goga history workaround
trifonovmixail Aug 29, 2026
a9f9940
fix: skills for goga history workaround
trifonovmixail Aug 29, 2026
7c9fc01
fix: pipelines history support
trifonovmixail Aug 29, 2026
35cf566
feat: workflow notes instruction compiled to flow buttons
trifonovmixail Aug 29, 2026
4e2bb22
feat: add notes field to WorkflowStage model
trifonovmixail Aug 29, 2026
cf8b731
feat: parse_workflow validates notes instruction and rejects it in ex…
trifonovmixail Aug 29, 2026
8fd772f
feat: compile_flow assembles buttons from effective workflow notes
trifonovmixail Aug 29, 2026
969a666
feat: serialize_flow emits per-stage buttons mapping
trifonovmixail Aug 29, 2026
52deef1
feat: pin apply_skip_stages notes behavior with tests
trifonovmixail Aug 29, 2026
33c89bc
fix: address code review findings
trifonovmixail Aug 29, 2026
49ca1ca
fix: address code review findings
trifonovmixail Aug 29, 2026
2e78176
feat: add topics cell architecture with statuses registration and top…
trifonovmixail Aug 29, 2026
ae17499
feat: scaffold goga/history/statuses cell package and test layout
trifonovmixail Aug 29, 2026
ef7c91c
feat: implement Stage and StatusScale in statuses scale cell
trifonovmixail Aug 29, 2026
f963e47
feat: implement StatusRegistry in statuses registry cell
trifonovmixail Aug 29, 2026
c848a22
feat: implement assemble_status_scale in statuses assembly cell
trifonovmixail Aug 29, 2026
e8d5ad7
feat: add resolve_history_root and year-scoped ensure_topic_dir in hi…
trifonovmixail Aug 29, 2026
e2bf3e7
feat: multi-status model in history status.py with scale facade embed…
trifonovmixail Aug 29, 2026
0140bb2
feat: multi-status history status command with segment-per-status ren…
trifonovmixail Aug 29, 2026
1280e26
feat: topics git cell package skeleton with test layout
trifonovmixail Aug 29, 2026
5fb9ed4
feat: BranchRef and list_branch_refs branch inventory in topics git cell
trifonovmixail Aug 29, 2026
7b17224
feat: ref tree reading and switch mutations finalizing topics git cell
trifonovmixail Aug 29, 2026
477923b
feat: topics board cell with BoardRecord and collect_topic_board
trifonovmixail Aug 29, 2026
ab7fa31
feat: topics switch resolution and switching orchestration in switchi…
trifonovmixail Aug 29, 2026
269f621
feat: topics fresh-work creation and occupancy oracles in creation.py
trifonovmixail Aug 29, 2026
a4e1958
feat: pipeline -t/--topic topic procedure replacing branch machinery
trifonovmixail Aug 29, 2026
0e06675
feat: topics board renderer render_topic_board in commands/topics cell
trifonovmixail Aug 29, 2026
189cfee
feat: topics command group with status/create/switch subcommands in c…
trifonovmixail Aug 29, 2026
b77a515
feat: topics command wired through goga/commands facade and root app …
trifonovmixail Aug 29, 2026
d996cb0
feat: end-to-end integration tests for topic workflows
trifonovmixail Aug 29, 2026
66420ce
fix: address code review findings
trifonovmixail Aug 29, 2026
99a09c9
fix: address code review findings
trifonovmixail Aug 29, 2026
af540c7
fix: address acceptance review findings in topics cells
trifonovmixail Aug 29, 2026
3ae6201
feat: add memory to gitignore
trifonovmixail Aug 29, 2026
ee80a48
feat: add memory to brainstorm
trifonovmixail Aug 29, 2026
67a9740
feat: fix prompt for workflow in brainstorm
trifonovmixail Aug 29, 2026
3cd3bb8
fix: create topic from pipeline -t when no branch hosts it
trifonovmixail Aug 29, 2026
51f4ad7
refactor: isolate ensuring domain and remove cross-cell usage references
trifonovmixail Aug 29, 2026
090e897
feat: add history prune, topic titles, and the new status
trifonovmixail Aug 30, 2026
8a8d105
feat: add the new status to the built-in scale axis (nine entries)
trifonovmixail Aug 30, 2026
baddbf4
feat: add the branch inventory module to the history git cell
trifonovmixail Aug 30, 2026
15a58d2
feat: add read_ref_file to the topics git cell (ref-tree file content…
trifonovmixail Aug 30, 2026
fa15111
feat: add remove_topic_dir to the history paths module (idempotent to…
trifonovmixail Aug 30, 2026
abc5202
feat: add prune_topics to the history cell (orphan cleanup of one year)
trifonovmixail Aug 30, 2026
74c673f
feat: re-export the branch inventory and orphan cleanup on the histor…
trifonovmixail Aug 30, 2026
99bde13
feat: add BoardRecord.title and title reading to collect_topic_board
trifonovmixail Aug 30, 2026
d8db6ab
feat: add optional title to create_topic writing title.txt
trifonovmixail Aug 30, 2026
b94e618
feat: add the prune subcommand to goga history
trifonovmixail Aug 30, 2026
31eb131
feat: generalize render_topic_board to the k-column grid with the inf…
trifonovmixail Aug 30, 2026
f0de190
feat: add --info/-i to topics status and --title/-t to topics create
trifonovmixail Aug 30, 2026
2107771
feat: add the title-to-new-status integration test
trifonovmixail Aug 30, 2026
7a30777
fix: address code review findings
trifonovmixail Aug 30, 2026
228c2cf
fix: address acceptance review findings
trifonovmixail Aug 30, 2026
bf6db0e
fix: build script in development workflow
trifonovmixail Aug 30, 2026
b39db67
feat: declare the topics create --publish contracts across five cells
trifonovmixail Aug 30, 2026
327bad1
feat: add TopicsConfig, loader step 10, and both config facades
trifonovmixail Aug 30, 2026
2ff663c
feat: add the six publication git routines of goga/topics/git (publis…
trifonovmixail Aug 30, 2026
65d9ce3
feat: add the branch-tree slug oracle check_slug_occupancy (goga/topics)
trifonovmixail Aug 30, 2026
5263dcd
feat: add the fast creation-and-publication cycle publish_topic (goga…
trifonovmixail Aug 30, 2026
50f28c9
feat: add the topics create --publish flags and value resolution (gog…
trifonovmixail Aug 30, 2026
74c655b
feat: add the four publish-workflow integration scenarios (tests/inte…
trifonovmixail Aug 30, 2026
63f6e75
fix: address code review findings
trifonovmixail Aug 30, 2026
d036d7c
fix: address code review findings
trifonovmixail Aug 30, 2026
25a71af
fix: address code review findings
trifonovmixail Aug 30, 2026
22aa50c
fix: address code review findings
trifonovmixail Aug 30, 2026
3fe9dc6
fix: address code review findings
trifonovmixail Aug 30, 2026
2e251a1
docs: align topics CODEMANIFEST guarantees with the implementation
trifonovmixail Aug 30, 2026
a549cdb
chore: drop the review_executor patience override
trifonovmixail Aug 31, 2026
b8c989c
feat: declare the hooks domain contracts and retire register_topic_st…
trifonovmixail Aug 31, 2026
29773aa
feat: implement the hooks action catalog cell (Action, declared_actions)
trifonovmixail Aug 31, 2026
e3d34a1
feat: implement tool-package access (ToolPackage, enumerate_tool_pack…
trifonovmixail Aug 31, 2026
bb2c4d6
feat: implement the registration envelope (HookRegistrar, Subscriptio…
trifonovmixail Aug 31, 2026
e8b22ad
feat: implement the run registry (HookRegistry, ToolContext, ToolHooks)
trifonovmixail Aug 31, 2026
dd1d656
feat: implement the context mediation (wrap_context, build_hook_argum…
trifonovmixail Aug 31, 2026
30a8e19
feat: implement the hooks event emission (emit_hook_event, dispatch f…
trifonovmixail Aug 31, 2026
25b21a5
feat: implement the hooks platform facade (four re-exports via goga/h…
trifonovmixail Aug 31, 2026
78964a5
feat: migrate the statuses domain onto the hooks platform (assemble_s…
trifonovmixail Aug 31, 2026
f5983a3
feat: implement the goga hooks command (registry, --tool slice, tree …
trifonovmixail Aug 31, 2026
dd9f7ac
feat: register the hooks command in the commands facade and root CLI …
trifonovmixail Aug 31, 2026
1c94c0f
feat: migrate the domain-hooks integration tests and add the non-regr…
trifonovmixail Aug 31, 2026
cad5ac0
fix: address code review findings
trifonovmixail Aug 31, 2026
64203b6
test: cover the one-registry-per-tool guarantee of the status assembly
trifonovmixail Aug 31, 2026
64f96ec
fix: permissions for workspace in docker
trifonovmixail Aug 31, 2026
bbe55d8
feat: define the memory contracts across the workflow and compiler cells
trifonovmixail Aug 31, 2026
2e01f74
feat: add the WorkflowReflect and WorkflowMemory data models to the w…
trifonovmixail Aug 31, 2026
f2e831d
feat: add the reflect and memory fields to WorkflowStage and Workflow…
trifonovmixail Aug 31, 2026
0f75456
feat: validate the memory authoring surface in parse_workflow
trifonovmixail Aug 31, 2026
bf0388f
feat: add the FlowMemory model, FlowDocument.memory slot, and compile…
trifonovmixail Aug 31, 2026
534b157
feat: emit the top-level memory block in serialize_flow
trifonovmixail Aug 31, 2026
7ec9909
feat: compute memory participation and assemble stage memory keys in …
trifonovmixail Aug 31, 2026
92f5f31
feat: carry the memory configuration verbatim through apply_skip_stages
trifonovmixail Aug 31, 2026
4ea7bf3
feat: add cross-cell integration tests for the workflow-memory surface
trifonovmixail Aug 31, 2026
2d41204
fix: address code review findings
trifonovmixail Aug 31, 2026
0f3cb1a
docs: align workflow extend annotation and _build_stages docstring wi…
trifonovmixail Aug 31, 2026
3f54a20
feat: delete memory from gitignore
trifonovmixail Sep 1, 2026
518cdcd
feat: add memory for architecture
trifonovmixail Sep 1, 2026
204cfdd
feat: rename topic title to multi-line todo across topics contracts
trifonovmixail Sep 1, 2026
d00b085
feat: rename status axis new/title.txt to todo/todo.md in statuses cell
trifonovmixail Sep 1, 2026
230c4b4
feat: rename board title to todo summary with normalization
trifonovmixail Sep 1, 2026
55de7e3
feat: rename create_topic title param to todo with truthy write gate
trifonovmixail Sep 1, 2026
92371e1
feat: rename publish_topic title param to todo with empty-todo gate
trifonovmixail Sep 1, 2026
21bf9b9
feat: rename create option to --todo with interactive multiline entry
trifonovmixail Sep 1, 2026
e7e7ef2
feat: rename board render info column to todo
trifonovmixail Sep 1, 2026
69bb30a
feat: rename history status filter tests to todo vocabulary
trifonovmixail Sep 1, 2026
bc8f89a
feat: rename topic workflow integration tests to todo vocabulary
trifonovmixail Sep 1, 2026
8fc247a
fix: address code review findings
trifonovmixail Sep 1, 2026
ecca0df
chore(memory): update project memory
trifonovmixail Sep 1, 2026
bb4c845
fix: delete common memory
trifonovmixail Sep 1, 2026
0e34662
fix: code style
trifonovmixail Sep 1, 2026
1ef99e9
feat: rename topics status subcommand to board
trifonovmixail Sep 1, 2026
8f4a86d
feat: add sync workflow with russian answer prompt
trifonovmixail Sep 1, 2026
07051dd
feat: support todo file in refinement pipeline
trifonovmixail Sep 1, 2026
da679ae
fix: emit explicit memory block values in compiled flows
trifonovmixail Sep 2, 2026
f8495b7
docs: keep compiled memory form out of user documentation
trifonovmixail Sep 2, 2026
db9f7cc
feat: up afm version
trifonovmixail Sep 2, 2026
fffa4f6
feat: add max_rules to development memory
trifonovmixail Sep 2, 2026
05a202c
feat: apply topics usability architecture to cells
trifonovmixail Sep 2, 2026
dffac28
feat: add goga/topics/editor cell with edit_text
trifonovmixail Sep 2, 2026
d0a2d8f
feat: add delete_remote_branch to goga/topics/git
trifonovmixail Sep 2, 2026
8f49a7f
feat: add DeleteTarget and resolve_delete_targets to goga/topics
trifonovmixail Sep 2, 2026
6b27cad
feat: add delete_topics to goga/topics/deletion
trifonovmixail Sep 2, 2026
8628cc7
feat: rework publish_topic — domain default template, no re-ask, sing…
trifonovmixail Sep 2, 2026
938f17f
feat: add enter_topic_todo to goga/topics — shared single-trailing-ne…
trifonovmixail Sep 2, 2026
a0c751d
feat: rework switch_topic — todo flag with post-switch todo entry
trifonovmixail Sep 2, 2026
d85e62e
feat: rework ensure_topic — fast creation from current HEAD, todo fla…
trifonovmixail Sep 2, 2026
cb68fcf
feat: rework create_topic — mandatory base, preflight-first, editor t…
trifonovmixail Sep 2, 2026
9f4cadc
feat: rework goga topics CLI — value-only --todo, base/template matri…
trifonovmixail Sep 2, 2026
1be54a3
feat: add --todo option to pipeline CLI — run-form guard, ensure_topi…
trifonovmixail Sep 2, 2026
2741871
fix: address code review findings
trifonovmixail Sep 2, 2026
1d271d4
fix: address code review findings
trifonovmixail Sep 2, 2026
1acb33d
fix: address code review findings
trifonovmixail Sep 2, 2026
1fdf045
fix: address code review findings
trifonovmixail Sep 2, 2026
5213bb3
fix: address code review findings
trifonovmixail Sep 2, 2026
e3b6533
fix: align topics contracts with implementation after acceptance review
trifonovmixail Sep 3, 2026
237166e
chore(memory): update project memory
trifonovmixail Sep 3, 2026
79c283f
feat: support todo in bugfix and patch pipeline
trifonovmixail Sep 3, 2026
0066702
feat: unify history year addressing with group -y option in contracts
trifonovmixail Sep 3, 2026
43ce422
chore: bump AFM_VERSION to 0.5.64
trifonovmixail Sep 3, 2026
79a60f3
feat: add optional year parameter with selected-year filter to collec…
trifonovmixail Sep 3, 2026
b93ab3d
feat: scope prune_topics year selection to collect_history_tree(resol…
trifonovmixail Sep 3, 2026
c5073a4
feat: align year docstrings of six history routines with contract
trifonovmixail Sep 3, 2026
394c9e9
feat: scope history group year to a single -y option via _HistoryScope
trifonovmixail Sep 3, 2026
8fc178b
feat: add scoped-year integration tests for the history group
trifonovmixail Sep 3, 2026
d8465f5
feat: sync history docs and provider usages with the scoped group year
trifonovmixail Sep 3, 2026
58f8669
fix: address code review findings
trifonovmixail Sep 3, 2026
77f2fa3
chore(memory): update project memory
trifonovmixail Sep 3, 2026
f7680e7
fix: stabilize CI across Python 3.10-3.14 and apply ruff format
trifonovmixail Sep 3, 2026
bbc3083
feat: add memory for code design
trifonovmixail Sep 3, 2026
ab7907e
feat: update memory
trifonovmixail Sep 3, 2026
f74369d
feat: update memory
trifonovmixail Sep 3, 2026
c54afd6
docs: fix configuration anchors, trace cli pages, bump edit_uri to 1.3.x
trifonovmixail Sep 3, 2026
7cb280d
fix: bump suggested onboarding image tags to 1.3
trifonovmixail Sep 3, 2026
5da0ceb
docs: end public docstring summary first lines with a period
trifonovmixail Sep 3, 2026
85d482d
style: separate logical blocks with one blank line in function bodies
trifonovmixail Sep 3, 2026
9a83908
docs: address contracts review findings in manifests and usages
trifonovmixail Sep 3, 2026
7728745
docs: add Returns section to current_year docstring
trifonovmixail Sep 3, 2026
4b53799
style: separate logical blocks in onboarding tests
trifonovmixail Sep 3, 2026
2aa5502
docs: add Returns section to resolve_review_options docstring
trifonovmixail Sep 3, 2026
bb4f79d
docs: apply documentation review updates
trifonovmixail Sep 4, 2026
8209ff4
feat(topics)!: plant created branches without switching by default
trifonovmixail Sep 4, 2026
065b7f1
chore: bump AFM_VERSION to 0.5.67
trifonovmixail Sep 4, 2026
f57f31f
docs: clarify architecture plan reference in brainstorm skill
trifonovmixail Sep 4, 2026
de22a5d
docs: quote the publication ask prompt verbatim in topics-command usage
trifonovmixail Sep 4, 2026
a51e7d4
feat(topics)!: separate board records with row dividers
trifonovmixail Sep 4, 2026
fe284f0
docs!: restructure the site into Features domains
trifonovmixail Sep 4, 2026
6607a32
fix(contracts): drop references to previous functionality
trifonovmixail Sep 4, 2026
30ae416
fix: apply review fixes across code, contracts, docs, and tests
trifonovmixail Sep 4, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
8 changes: 2 additions & 6 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -222,11 +222,7 @@ __marimo__/
.ralphex/
docs/plans/
docs/design/
docs/arch/
docs/tasks/
docs/defines/
docs/proposals/
docs/superpowers/

# Orchestration run artifacts
/plan.md
# Goga
.goga/history
15 changes: 11 additions & 4 deletions .goga/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,24 @@ build:
env:
<<: *claude-env
ANTHROPIC_DEFAULT_OPUS_MODEL: "glm-5.1"
review_executor:
agent: claude
base_ref: release/1.3.0
env:
<<: *claude-env
ANTHROPIC_DEFAULT_OPUS_MODEL: "glm-5.3[1m]"

pipeline:
agent: claude
env:
<<: *claude-env
ANTHROPIC_DEFAULT_OPUS_MODEL: "glm-5.3[1m]"

lint:
ignore:
- build/
- .venv/

codemanifest:
usages:
convention: .goga/usages/conventions.md
Expand All @@ -30,7 +41,3 @@ codemanifest:
- Debugging and testing
- Organizing the test infrastructure
- Understanding the general principles and rules of development and testing in the project

lint:
ignore:
- build/
123 changes: 123 additions & 0 deletions .goga/memory/architecture.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,123 @@
# Project rules — architecture

## Dependency edges target the owner's facade and respect the fixed direction

All interaction with a subsystem's capabilities — code dependencies and documentation alike — targets the owning unit's
public surface. Internal sub-units are never direct dependency targets; nested capabilities publish their contracts at
the owner's level, and reuse happens through the owner's re-export, never by linking into the depths.

When a unit accumulates several functional zones (data, registry, dispatch, access to an external system), it is split
into leaf sub-units by zone, with the main API re-exported on the parent facade; consumers import only the facade.

Direction is part of the same law: dependency direction between domains is fixed and one-way, and a reverse edge is
never introduced, whatever reuse it would buy — it creates a cycle that surfaces too late. When the fixed direction
puts a capability out of reach, the fallback is a consumer-side variant, never an edge shortcut.

## Single access zone per external system

All operations that reach one external system inside a domain belong to exactly one dedicated leaf unit that owns the
access, mirrors the structure of the existing access leaves, exposes a minimal public surface, and is consumed only
through the domain facade. When the access happens and with what content remains the responsibility of consumer
orchestrations. New capabilities extend that unit's zone instead of spawning a parallel sibling — even when the
extension forces an exception to the zone's established invariants. Extending a zone never rewrites already published
contract fragments: their invariants stay verbatim, and every new allowance is recorded only in the fragments of the
new elements.

## Core-anchored invariants and shared parameters

Guarantees that must hold for every caller are specified and enforced in the core domain contracts, never at a single
entry point; a rule guarded inside one command counts as unenforced, because every other caller could bypass it. The
same law governs the command surface: a parameter shared by every subcommand of a command group is declared once on
the group itself and applied implicitly by all subcommands — subcommand surfaces and declared signatures carry no copy
of it. The mechanism that transports the value to the subcommands is an implementation detail kept out of the
contract.

## Layered responsibility for external inputs

Environment coupling lives at the boundary layer, never in the domain core. The boundary layer resolves external
inputs — source precedence of explicit argument over configuration over built-in default — and passes primitive values
inward; interactive prompting that resolves a missing input belongs to the outer command layer, and a domain routine
that must interact detects the non-interactive terminal and fails with a clean error — keeping the domain core usable
from non-interactive callers and inner layers independently testable. Command callbacks stay thin in the
same spirit: they only resolve inputs, delegate to domain routines, and render results, passing values through as
opaque data without validating or re-interpreting them — grammar and normalization rules for a value
belong exclusively to the domain module. The domain core exposes all-or-nothing read-only resolution with clean errors
and mutation routines that run unconditionally once the caller has confirmed. The value provider performs structural
validation only (type and shape), stores values verbatim, embeds no defaults, and checks no semantics — semantic
interpretation and defaulting belong to the consumer.

## Graded outcome-to-exit mapping

Absence of data or an empty result is a successful run with empty output, never a failure. Usage mistakes and domain
failures are kept distinct and map to separate standardized non-zero exit codes, each reported to the user as one
clean message — internal tracebacks never reach the output.

## Additive regression-free extension

New functionality enters as a new unit beside the existing ones, never as a mode inside an existing unit. When
behavior is added to an existing routine instead, it arrives as an optional parameter so every current caller stays
valid and unchanged, and invocation forms that remain supported stay observationally identical in output shape and
exit behavior; no parallel routines duplicating existing logic are ever introduced. Existing observable behavior, its
contracts, and its tests are not edited and do not acquire new dependencies — including reads of new data sources.
Data-model extensions arrive as optional fields with a safe default so every existing construction site stays valid
without edits. Migrating existing functionality onto a new platform follows the same spirit as a near-rename: domain
objects move unchanged, and only the source of registrations changes (the cell emits the platform's action instead of
running its own enumeration mechanism).

## Decisions before mutations, with compensating rollback

Orchestrating algorithms order every read-only check and validation before the first state change. Before any
irreversible step of a multi-step mutation, the state needed to undo it is captured; when a later step fails, prior
effects are restored by composing existing primitives, exactly one clean error with the root cause is reported, and a
repeated invocation stays safe. The rollback is scoped to the failed sequence — work completed outside it deliberately
remains. Rollback mechanisms belong to the access layer; the decision to roll back belongs to the caller.

## Mechanism-agnostic contracts

Contracts express only the abstract order of actions through references to practices and types. Concrete mechanisms,
tool choices, and lifecycle detail are fixed in separate project-level practice documents with executable guidance,
never inside contract annotations.

## Closed binding of names in a contract

Every name declared as an imported dependency must be referenced within the contract's own text, and every mention must
resolve within that same contract: either through a declared dependency or through a locally declared practice (when a
direct dependency is impossible — cycles, unreachability). No dangling declarations, no free-floating mentions —
otherwise the contract cannot stand alone and the implementation cannot be rebuilt from it. References use the
contract's own notation, without procedural phrases about where names come from.

## Names state their scope

An operation's name states its exact coverage — never broader than what it does (no implying remote-side effects of a
local-only operation), never narrower. Scope inaccuracy in a name is a contract defect; a rename is applied across all
already produced artifacts so that stages never disagree on names.

## Specialization lives with the consumer

When a domain needs its own variant of a shared capability, the variant is created inside the consumer's zone. A
provider's internal units are never extended to serve one specific consumer — misplacement distorts the ownership map,
and moving code after materialization is a full migration.

## Mode-based safety of destructive operations

Protection in destructive operations comes from explicit prior modes, not from value-based exemptions. A no-execution
report mode previews the full effect before anything is removed; execution itself is unconditional — record attributes
never protect a record from removal. An operation is either unconditional or explicitly scoped by the caller; sparing
modes keyed to the data being destroyed are not invented.

## Stage artifact purity

A process stage produces only its designated artifact type; transformations belonging to later stages never start early.
A planning stage does not modify implementation artifacts — materialization belongs to the next stage. Mixing planning
with materialization destroys the workflow's guarantees: unreviewed code changes without an approved plan.

## One document — one behavior domain

Consumer documentation is structured by behavior domain: a new domain gets its own self-contained document, documents of
unchanged behavior are not edited, and cross-references between sibling documents are not introduced. The set of
documents to touch is decided by this rule, not by the task's original list.

## Fix-in-place verification gates

Defects surfaced by verification are repaired in the artifact itself, and the complete check suite is re-run to green
before approval. Approving with known breakage and deferring the repair to a later stage is rejected.
24 changes: 24 additions & 0 deletions .goga/memory/code-design.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Project rules — code design

## Independent root-cause isolation

When multiple failure classes arrive together, reproduce and prove each cause separately against authoritative material
— official documentation and the actual runtime sources — before fixing anything; never assume a single shared cause or
diagnose solely from an aggregated CI report.

## Specification-implementation co-evolution

When a defect surfaces at a contract boundary, fix the implementation to satisfy the existing specification and amend
the specification only to state the boundary explicitly, then confirm consistency through the project's specification
validation gates; never rewrite the specification to legitimize buggy behavior.

## Explicit version-stable validation

Encode edge-case semantics explicitly in production validation logic so behavior is identical on every supported runtime
version, rather than relying on standard-library behavior that silently changes between versions.

## Honest verification scope

Validate on the environments where the defects actually reproduce, rely on existing parameterized coverage and the CI
matrix for environments unavailable locally, disclose local-coverage gaps explicitly in every report, and never
fabricate coverage by mocking internal components to force unreachable branches.
Loading
Loading