Skip to content

feat(governance): Technical Steering Committee charter and founding roster#300

Open
mlieberman85 wants to merge 3 commits into
mainfrom
015-tsc-charter
Open

feat(governance): Technical Steering Committee charter and founding roster#300
mlieberman85 wants to merge 3 commits into
mainfrom
015-tsc-charter

Conversation

@mlieberman85

@mlieberman85 mlieberman85 commented Jun 18, 2026

Copy link
Copy Markdown
Contributor

Summary

Introduce the darnit project's first formal governance documents, modeled on the LF Projects Technical Charter pattern used by GUAC and gittuf. Single-tier TSC over one project (gittuf shape, not GUAC's two-tier).

  • New CHARTER.md: LF-template sections 1-8. Voting rules: consensus-first; 50% quorum; simple majority of attendees with quorum (synchronous) or majority of entire TSC (electronic); 2/3 of entire TSC for amendments and license exceptions. PR approvals on tracked files are the canonical vote record; non-file decisions use a GitHub Issue with +1/-1/+0 comments.

  • New TECHNICAL-STEERING-COMMITTEE.md: founding roster of four:

    Name Affiliation Category GitHub
    Michael Lieberman Kusari industry @mlieberman85
    Justin Cappos New York University academia @JustinCappos
    Stephen Augustus Bloomberg industry @justaugustus
    Adolfo Garcia Veytia Carabiner industry @puerco
  • Reconciled GOVERNANCE.md: existing maintainer-only model (committed 2026-01-15 in 64dd2f2) reframed as the operational layer below the TSC charter. Pre-existing Project Structure, Roles and Responsibilities, Release Process, Code of Conduct, and Contact sections preserved with light edits clarifying that TSC authority sits above maintainer authority.

  • README.md: added a Governance section linking the three documents.

Key design choices

Topic Choice Source
Structure Single-tier (gittuf-shape) D1 in specs/015-tsc-charter/research.md
Diversity guard Transparency by labelling (gittuf), not hard quota (GUAC) D3
Vote recording PR approvals for file-bound; Issue/Discussion +1/-1 for others D4, FR-013, clarified 2026-06-17
Removal-for-cause Majority of the other TSC members; subject does not vote on themselves D6, FR-006
Inactivity threshold None -- discretionary judgment by remaining members D7
Charter license CC-BY-4.0 D9, FR-009

Founding roster expansion (2026-06-18)

The first commit on this branch seated a two-member founding TSC, with an explicit Charter section 2.6 noting the transitional concentration risk and the intent to recruit a third member promptly. Before adoption that risk was already addressed: Stephen Augustus and Adolfo Garcia Veytia were added as founding members, bringing the TSC to four (three industry, one academia). Charter section 2.6 was removed as moot; the two-member edge cases in spec.md are annotated as moot but preserved for audit trail.

Test plan

  • All eight LF charter top-level sections present in order (Mission, TSC, Voting, Compliance, Community Assets, General Rules, IP Policy, Amendments)
  • Section 2 subsections 2.1..2.5 (no stale 2.6 after the expansion)
  • No NEEDS CLARIFICATION markers remain in any deliverable
  • All four roster rows fully populated (name, affiliation, category, GitHub, role)
  • GitHub handle regex (@[A-Za-z0-9-]+) matches all four members
  • CC-BY-4.0 license notice present in CHARTER.md
  • Cross-document invariant: founding-member handles do not appear in CHARTER.md (a future roster change is a one-file edit)
  • Voting-threshold consistency (SC-005): every numeric threshold in narrative matches the canonical thresholds in Section 3
  • All authored files pure ASCII (no em-dashes, curly quotes, arrows, check marks, emoji, box-drawing)
  • uv run ruff check . -- passed
  • uv run python scripts/validate_sync.py --verbose -- passed (5/5)
  • uv run pytest tests/ --ignore=tests/integration/ -q -- 2213 passed, 6 skipped, 0 failures
  • Justin Cappos to confirm acceptance of TSC membership before merge
  • Stephen Augustus to confirm acceptance of TSC membership before merge
  • Adolfo Garcia Veytia to confirm acceptance of TSC membership before merge

Spec-Kit artifacts (under specs/015-tsc-charter/)

spec.md, plan.md, research.md, data-model.md, quickstart.md, tasks.md, and checklists/requirements.md. The clarifications sessions on vote recording, removal threshold, inactivity definition (2026-06-17), and the founding roster expansion (2026-06-18) are captured in spec.md.

Commits

  • feat(governance): add Technical Steering Committee charter and roster -- the initial deliverable (2-member founding roster)
  • style(governance): scrub non-ASCII characters from charter feature files -- plain-ASCII cleanup
  • feat(governance): expand founding TSC roster to four members -- add Augustus and Garcia Veytia, drop the now-moot transitional section

All commits carry DCO sign-off per the constitution.

[Generated with Claude Code]

@JustinCappos JustinCappos left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good!

mlieberman85 and others added 3 commits June 25, 2026 09:21
Introduce the darnit project's first formal governance documents,
modeled on the LF Projects Technical Charter pattern used by GUAC and
gittuf. Single-tier TSC over one project (gittuf shape, not GUAC's
two-tier).

New top-level files:

- CHARTER.md — LF-template sections 1-8 plus a transitional §2.6
  noting the known concentration risk of a two-member TSC. Voting
  rules: consensus-first; 50% quorum; simple majority of attendees
  with quorum (synchronous) or majority of entire TSC (electronic);
  2/3 of entire TSC for amendments and license exceptions. PR
  approvals on tracked files are the canonical vote record; non-file
  decisions use a GitHub Issue with +1/-1/+0 comments.
- TECHNICAL-STEERING-COMMITTEE.md — founding roster: Michael
  Lieberman (Kusari / industry / @mlieberman85) and Justin Cappos
  (NYU / academia / @JustinCappos). gittuf-style row schema with
  industry/academia tag.

Reconciled with existing GOVERNANCE.md (was committed 2026-01-15):
the prior maintainer-only decision-making model was reframed as the
operational layer below the TSC charter. Pre-existing Project
Structure, Roles and Responsibilities, Release Process, Code of
Conduct, and Contact sections preserved.

Removal-for-cause threshold follows gittuf: majority of the *other*
current TSC members; the member under review does not vote on
themselves. "Inactivity" is a discretionary judgment with no fixed
numeric threshold.

Validation:
- All 8 LF sections present in order
- Roster rows fully populated, GitHub handle regex matches, no chairs
- CC-BY-4.0 license notice present in CHARTER.md
- Cross-document invariant: founding handles do not appear in
  CHARTER.md (roster changes are a one-file edit)
- ruff: passed
- validate_sync: 5/5 passed
- pytest: 2213 passed, 6 skipped, 0 failures

Spec, plan, research, data model, quickstart, tasks, and checklist
under specs/015-tsc-charter/ for the speckit feature artifacts.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Signed-off-by: Michael Lieberman <mlieberman85@gmail.com>
Replace typographic Unicode that was injected during initial drafting
with plain-ASCII equivalents, per project preference for ASCII-only
prose in repo files.

Substitutions applied:

- em-dash (U+2014)            -> --
- en-dash  (U+2013)            -> -
- right arrow (U+2192)         -> ->
- left-right arrow (U+2194)    -> <->
- less-than-or-equal (U+2264)  -> <=
- greater-than-or-equal (U+2265) -> >=
- box-drawing chars (U+2500..) -> - | +
- play / down triangles (U+25BA, U+25BC) -> > v
- warning sign with variation selector (U+26A0, U+FE0F) -> dropped
- target emoji (U+1F3AF)       -> dropped

Files affected: CHARTER.md, GOVERNANCE.md, and the spec-kit feature
artifacts under specs/015-tsc-charter/ (spec, plan, research,
data-model, quickstart, tasks). TECHNICAL-STEERING-COMMITTEE.md and
checklists/requirements.md were already pure ASCII; README.md edit
introduced no non-ASCII.

Validation post-scrub: all 8 LF charter sections still present in
order; CC-BY-4.0 notice intact; roster rows unchanged; cross-document
invariants hold.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Signed-off-by: Michael Lieberman <mlieberman85@gmail.com>
Add two additional founding TSC members before charter adoption:

  - Stephen Augustus | Bloomberg | industry | @justaugustus
  - Adolfo Garcia Veytia | Carabiner | industry | @puerco

Founding roster is now 4 members (3 industry, 1 academia), up from 2.

Consequential changes:

- Drop CHARTER.md section 2.6 ("Transitional Note on a Two-Member
  TSC"). With four members, "majority of the other current TSC
  members" no longer collapses to a majority of one, so the
  concentration-risk note is moot. Section 2 subsections now run
  2.1..2.5; top-level sections 1..8 unchanged.
- spec.md: record the expansion as a Clarifications session entry
  (2026-06-18). Annotate the pre-existing "Two-member quorum" and
  "Removal-for-cause in a two-member TSC" edge cases as moot, and
  mark the "Transitional two-member TSC" assumption as resolved.
  Preserved in the spec for audit-trail purposes rather than deleted.
- data-model.md: update the "Required document structure" example
  and the "Initial roster matches user input" validation rule to
  reflect four founding rows.
- plan.md, quickstart.md: light touch-ups noting the two-member
  framing is now historical.

Out of scope (left as historical drafting record):
  research.md decision rationale, tasks.md task descriptions,
  checklists/requirements.md notes. These describe how the charter
  was authored, not what was adopted.

Validation:
- 8 LF charter top-level sections still present in order
- All four roster rows fully populated, GitHub handle regex matches
- Cross-document invariant holds (no member handles in CHARTER.md)
- All authored files remain pure ASCII

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Signed-off-by: Michael Lieberman <mlieberman85@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants