teams.sgit.ai / evolution

Evolution — dated learnings, as diffs

A ROLE.md shows what a role is today. The history shows what went wrong badly enough that someone wrote a rule into it. That is the difference between a template gallery and a memory site, and it is the reason this page exists even though role definitions do not change often — of 17 Explorer roles, the busiest are QA and Librarian at 6 commits each, then Dev and Conductor at 5. Roles are stable, and the rare edits are therefore high-signal.

The timeline

Learning 1 — roles did not know where to talk (30 March 2026)

The symptom, visible in the commit message itself: a "dangling comms/03/ folder" — comms directories existing that no role referenced.

The fix: read/write directory tables added to Conductor, Dev and QA, plus QA's eight-step session-start sequence. The added lines, verbatim from the diff:

+ | team/comms/ | Cross-team communication — changelogs, QA briefs, inter-team briefs, plans |
+ | team/comms/QA_START_HERE.md | Read first every session — what changed, what to test |
+ | team/comms/changelog/ | Read changelogs to classify test failures (good vs bad) |
+ 6. Write a changelog entry in team/comms/changelog/MM/DD/ documenting the fix and expected test impact
+ 7. If the fix affects UI behaviour, write a QA brief in team/comms/qa/briefs/MM/DD/ with updated test cases
Building the shared channel is not enough — every role must carry the addresses of its own inbox and outbox, and a session-start sequence that reads them. Infrastructure a role has not been told about does not exist.

This is the single most reusable lesson in the corpus for anyone standing up a multi-role team, which is why it leads this page.

Learning 2 — a new capability arrived without its prohibition (8 April 2026)

The context: roles gained sgit (the vault CLI) for cross-team handovers. The risk: vault keys and access tokens are exactly the sort of thing an agent will helpfully commit.

The fix, added to Dev, QA and Librarian, and to .claude/CLAUDE.md in the same commit:

+ - No access tokens, vault keys, share tokens, or API keys are committed to Git — these are secrets
+ - sgit (PyPI: sgit-ai): Create vaults for cross-team briefing delivery…
+   NEVER commit vault keys, share tokens, or access tokens to Git.

Note the placement: the prohibition sits inside the tool's own row in the Tools and Access table, next to the capability it constrains — not in a distant security section a role might not read.

When you grant a role a new tool, write the prohibition in the same commit and the same place as the grant. A capability added on Monday and a rule added in June is a month of exposure.

This connects directly to pki.sgit.ai's key discipline (write keys never published) — the role file is where that discipline reaches the agent that would otherwise breach it.

Learning 3 — the format regressed (Feb → Mar 2026)

Not a single commit but a drift, and the estate has not noticed it: the newer table-format Identity blocks state Central Claims descriptively, while the older bullet-format ones state them as falsifiable failure conditions. The migration improved the markup and lost the property that made the field valuable.

A format migration can silently drop a semantic constraint; diff the meaning, not just the rendering.

Publishing this on the site — a self-criticism of the estate's own reference material — is exactly the credibility the network's other sites are built on. The drift, quantified →

How this page stays alive

This is not a one-time archaeology. Every future change to a ROLE.md should produce a dated entry answering three questions: what broke, what rule was added, and which roles received it. Three lines. The rule is that a role edit without such an entry is incomplete — because the edited file records the answer but destroys the question, and the question is what an agent needs in order to know whether the rule still applies.

Only three learnings were recovered. This archaeology found three high-signal changes across seven months, out of 4,335 commits searched. A deeper pass over team/comms/ and .issues/ would likely surface more, and the changelog tree (changelog/03/ through changelog/08/) is unexamined — G6.