Skip to content
Merged
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
9 changes: 6 additions & 3 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,6 @@
[submodule "tool-base"]
path = tool-base
url = https://github.com/SpineEventEngine/tool-base.git
[submodule "delivery-server"]
path = delivery-server
url = https://github.com/SpineEventEngine/delivery-server.git
[submodule "config"]
path = config
url = https://github.com/SpineEventEngine/config.git
Expand Down Expand Up @@ -49,9 +46,15 @@
[submodule "money"]
path = money
url = https://github.com/SpineEventEngine/money.git
[submodule "gcloud-jvm"]
path = gcloud-jvm
url = https://github.com/SpineEventEngine/gcloud-jvm.git
[submodule ".agents/shared"]
path = .agents/shared
url = https://github.com/SpineEventEngine/agents.git
branch = master
update = merge
ignore = all
[submodule "agents"]
path = agents
url = https://github.com/SpineEventEngine/agents.git
119 changes: 118 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,119 @@
# summit
The repository for automation of cross-repository works

The meta-repository for automating cross-repository work across the [Spine SDK][spine-org].

`summit` is a Git superproject: it assembles the Spine SDK repositories as submodules
in a single working tree, so agents and the shared `config`/CI tooling can act across
the whole SDK at once. It ships no code and has no build of its own — its content is the
pinned commits of the submodules below, plus the shared agent tooling under `.agents/`.

## Repository layout

The submodules are pinned to fixed commits, giving a reproducible snapshot of the
SDK. They are grouped below by function, not by strict dependency order.

### Shared infrastructure

| Submodule | Role |
|-----------|------|
| [`config`][config] | Dependencies and build configurations shared among subprojects |

The shared agent tooling — skills, scripts, and guidelines — lives in the
[`agents`][agents] repository, mounted at `.agents/shared`. Unlike the submodules
listed here, that mount floats to the tip of `master` rather than a pinned commit.
The same repository is also wired in as a pinned top-level submodule at `agents/`,
so cross-repository automation can run against the tooling repo itself, just as it
does against the SDK repositories above.

### Foundation & utilities

| Submodule | Role |
|-----------|------|
| [`base-libraries`][base-libraries] | The framework's base types and utilities |
| [`reflect`][reflect] | Utilities for working with reflection in Java and Kotlin projects |
| [`logging`][logging] | Fluent logging API for Kotlin projects |
| [`testlib`][testlib] | Testing utilities for Spine SDK development and users |

### Domain & value types

| Submodule | Role |
|-----------|------|
| [`base-types`][base-types] | Popular value object types and associated code |
| [`change`][change] | Data types and utilities for changes and mismatches in data values |
| [`time`][time] | Protobuf-based date/time types and utilities |
| [`money`][money] | Currency and money data types and operations |

### Compiler & code generation

| Submodule | Role |
|-----------|------|
| [`compiler`][compiler] | The Spine Compiler — extendable Protobuf compilation |
| [`tool-base`][tool-base] | Common code for development tools |
| [`ProtoTap`][ProtoTap] | Utilities for tapping `protoc` output |
| [`validation`][validation] | Library and Compiler plugins for generating custom validation code |
| [`core-jvm-compiler`][core-jvm-compiler] | Plugins of the CoreJvm library for the Spine Compiler |

### Framework core

| Submodule | Role |
|-----------|------|
| [`core-jvm`][core-jvm] | The JVM-based implementation of the Spine framework core |

### Storage & runtime

| Submodule | Role |
|-----------|------|
| [`jdbc-storage`][jdbc-storage] | Support for storage in JDBC-compliant databases |
| [`gcloud-jvm`][gcloud-jvm] | Support for Spine-based Kotlin and Java apps on Google Cloud |

## Getting started

Clone with all submodules in one step:

```bash
git clone --recursive https://github.com/SpineEventEngine/summit.git
```

If you cloned without `--recursive`, or you are working in a fresh `git worktree` or
a shallow checkout, the submodules start uninitialised and the `.agents` symlinks
dangle. Bootstrap them with:

```bash
./init-submodules # materialise the config-managed submodules at their pinned commits
./config/pull # float the shared submodules and copy in the shared files
```

`./init-submodules` runs automatically at the start of a Claude Code session. See
[`AGENTS.md`](AGENTS.md) for the full bootstrap chain and the rationale behind it.

## Working across repositories

`summit` is where cross-repository work happens: coordinated agent sessions and the
shared `config` tooling propagate changes — dependency bumps, CI workflows, agent
guidelines — across the SDK from one place. Agent orientation, safety rules, and the
available skills are described in [`AGENTS.md`](AGENTS.md).

## License

`summit`, like the rest of the Spine SDK, is distributed under the
[Apache License 2.0](LICENSE).

[spine-org]: https://github.com/SpineEventEngine
[agents]: https://github.com/SpineEventEngine/agents
[config]: https://github.com/SpineEventEngine/config
[base-libraries]: https://github.com/SpineEventEngine/base-libraries
[reflect]: https://github.com/SpineEventEngine/reflect
[logging]: https://github.com/SpineEventEngine/logging
[testlib]: https://github.com/SpineEventEngine/testlib
[base-types]: https://github.com/SpineEventEngine/base-types
[change]: https://github.com/SpineEventEngine/change
[time]: https://github.com/SpineEventEngine/time
[money]: https://github.com/SpineEventEngine/money
[compiler]: https://github.com/SpineEventEngine/compiler
[tool-base]: https://github.com/SpineEventEngine/tool-base
[ProtoTap]: https://github.com/SpineEventEngine/ProtoTap
[validation]: https://github.com/SpineEventEngine/validation
[core-jvm-compiler]: https://github.com/SpineEventEngine/core-jvm-compiler
[core-jvm]: https://github.com/SpineEventEngine/core-jvm
[jdbc-storage]: https://github.com/SpineEventEngine/jdbc-storage
[gcloud-jvm]: https://github.com/SpineEventEngine/gcloud-jvm
1 change: 1 addition & 0 deletions agents
Submodule agents added at 2369ab
2 changes: 1 addition & 1 deletion base-libraries
Submodule base-libraries updated 106 files
2 changes: 1 addition & 1 deletion base-types
Submodule base-types updated 298 files
1 change: 0 additions & 1 deletion delivery-server
Submodule delivery-server deleted from 27aef6
48 changes: 37 additions & 11 deletions docs/project.md
Original file line number Diff line number Diff line change
@@ -1,18 +1,44 @@
<!-- Template — copy to a sibling repo's .agents/project.md and fill in the
sections below. In the config repo itself this file is a template only. -->

# Project: <name>
# Project: summit

## Overview

*One paragraph: what this repo is, what problem it solves, and its role in the
Spine SDK organisation.*
`summit` is a Git superproject (a meta-repository) that assembles the Spine SDK
repositories as submodules in a single working tree. It exists to automate
cross-repository work across the SDK: coordinated agent sessions and the shared
`config`/CI machinery act across many repositories at once. `summit` ships no code and
has no build of its own — its content is the pinned commits of the submodules it
aggregates, plus the shared agent tooling under `.agents/`.

## Architecture

*Role in the org: library / tool / Gradle plugin / application.
Key patterns, public API boundaries, and constraints specific to this repo.*
Role in the organisation: a **coordination superproject** — not a library, tool,
Gradle plugin, or application.

- **Submodules.** The SDK repositories listed in `.gitmodules` are pinned to fixed
commits, giving a reproducible snapshot of the whole SDK. The shared
`.agents/shared` submodule is the exception: it declares a tracked `branch` and
floats to the tip of `master`, so shared skills, scripts, and guidelines stay
current with no file churn in consumer pull requests.
- **Bootstrapping.** A fresh `git worktree` or shallow checkout starts with the
submodules uninitialised, so the `.agents` symlinks dangle. Run `./init-submodules`
to materialise the config-managed submodules at their pinned commits, then
`./config/pull` to float the shared submodules and copy the shared files in. Claude
Code runs `./init-submodules` automatically via a `SessionStart` hook.
- **Not a JVM build.** `summit` has no Gradle build, coding style, or tests of its
own, so the shared JVM requirements in `.agents/guidelines/jvm-project.md` do not
govern this repository. The aggregated repositories are JVM (Kotlin/Java) projects
and are each subject to that guideline in their own right.

<!-- `summit` has no build of its own; the jvm-project.md link the template offers is
intentionally left commented out. -->

## Cross-repository workflows

Repeatable, parameterised procedures for acting across the SDK repositories live under
[`docs/rollout/`](rollout/). Each pairs a repo-owned script (the deterministic
mechanics) with an agent-driven playbook (the judgement steps):

<!-- JVM projects: uncomment the line below after seeding this file.
Read [`.agents/guidelines/jvm-project.md`](.agents/guidelines/jvm-project.md) for build stack, coding style, tests, and versioning.
-->
- [`rollout/proofread.md`](rollout/proofread.md) — run the `proofread` skill across a
repo end-to-end (bump → build → sweep → pre-PR → PR), driven by the
[`proofread-repo`](../proofread-repo) script, with an optional
[`proofread-fanout.workflow.js`](rollout/proofread-fanout.workflow.js) for the sweep.
Loading