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
22 changes: 22 additions & 0 deletions .ai-team/decisions/inbox/fenster-logo-sizing.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# Decision: Sidebar Logo Sizing

**Author:** Fenster (Core Dev)
**Date:** 2025-01-27
**Status:** Implemented

## Context

The 500×500px `squad-logo.png` was rendering at ~248px tall in the sidebar header because `.sidebar-logo-img` used `max-width:100%; height:auto` — it filled the full sidebar width minus padding.

## Decision

Changed `.sidebar-logo-img` from `max-width:100%; height:auto` to `height:40px; width:auto`.

- **40px height** sits well within the sidebar-header's vertical space (padding: 20px top + 12px bottom) and matches typical docs site header logos (36–48px range).
- **width:auto** preserves the logo's aspect ratio — the 500×500 square image will render at 40×40px.
- No markup changes were needed; the flex layout in `.sidebar-header` already handles alignment.

## Alternatives Considered

- `max-width:48px` — would also work but constraining height is more conventional for header logos since vertical space is the scarce dimension.
- Adding a `width` + `height` attribute on the `<img>` tag — avoided to keep sizing in CSS where it belongs.
9 changes: 6 additions & 3 deletions .github/agents/squad.agent.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,16 @@
---
name: Squad (v0.0.0-source)
name: Squad
description: "Your AI team. Describe what you're building, get a team of specialists that live in your repo."
version: "0.0.0-source"
---

<!-- version: 0.0.0-source -->

You are **Squad (Coordinator)** — the orchestrator for this project's AI team.

### Coordinator Identity

- **Name:** Squad (Coordinator)
- **Version:** Read the `version` field from the YAML frontmatter at the top of this file. Include it as `Squad v{version}` in your first response of each session (e.g., in the acknowledgment or greeting).
- **Version:** 0.0.0-source (see HTML comment above — this value is stamped during install/upgrade). Include it as `Squad v{version}` in your first response of each session (e.g., in the acknowledgment or greeting).
- **Role:** Agent orchestration, handoff enforcement, reviewer gating
- **Inputs:** User request, repository state, `.ai-team/decisions.md`
- **Outputs owned:** Final assembled artifacts, orchestration log (via Scribe)
Expand Down Expand Up @@ -56,6 +57,8 @@ No team exists yet. Build one.

**Seeding:** Each agent's `history.md` starts with the project description, tech stack, and the user's name so they have day-1 context. Agent folder names are the cast name in lowercase (e.g., `.ai-team/agents/ripley/`). The Scribe's charter includes maintaining `decisions.md` and cross-agent context sharing.

**Team.md structure:** `team.md` MUST contain a section titled exactly `## Members` (not "## Team Roster" or other variations) containing the roster table. This header is hard-coded in GitHub workflows (`squad-heartbeat.yml`, `squad-issue-assign.yml`, `squad-triage.yml`, `sync-squad-labels.yml`) for label automation. If the header is missing or titled differently, label routing breaks.

**Merge driver for append-only files:** Create or update `.gitattributes` at the repo root to enable conflict-free merging of `.ai-team/` state across branches:
```
.ai-team/decisions.md merge=union
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/squad-heartbeat.yml
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ jobs:
const members = [];
let inMembersTable = false;
for (const line of lines) {
if (line.startsWith('## Members')) {
if (line.match(/^##\s+(Members|Team Roster)/i)) {
inMembersTable = true;
continue;
}
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/squad-issue-assign.yml
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ jobs:
} else {
let inMembersTable = false;
for (const line of lines) {
if (line.startsWith('## Members')) {
if (line.match(/^##\s+(Members|Team Roster)/i)) {
inMembersTable = true;
continue;
}
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/squad-triage.yml
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ jobs:
const members = [];
let inMembersTable = false;
for (const line of lines) {
if (line.startsWith('## Members')) {
if (line.match(/^##\s+(Members|Team Roster)/i)) {
inMembersTable = true;
continue;
}
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/sync-squad-labels.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ jobs:
const members = [];
let inMembersTable = false;
for (const line of lines) {
if (line.startsWith('## Members')) {
if (line.match(/^##\s+(Members|Team Roster)/i)) {
inMembersTable = true;
continue;
}
Expand Down
2 changes: 1 addition & 1 deletion templates/workflows/squad-heartbeat.yml
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ jobs:
const members = [];
let inMembersTable = false;
for (const line of lines) {
if (line.startsWith('## Members')) {
if (line.match(/^##\s+(Members|Team Roster)/i)) {
inMembersTable = true;
continue;
}
Expand Down
2 changes: 1 addition & 1 deletion templates/workflows/squad-issue-assign.yml
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ jobs:
} else {
let inMembersTable = false;
for (const line of lines) {
if (line.startsWith('## Members')) {
if (line.match(/^##\s+(Members|Team Roster)/i)) {
inMembersTable = true;
continue;
}
Expand Down
2 changes: 1 addition & 1 deletion templates/workflows/squad-triage.yml
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ jobs:
const members = [];
let inMembersTable = false;
for (const line of lines) {
if (line.startsWith('## Members')) {
if (line.match(/^##\s+(Members|Team Roster)/i)) {
inMembersTable = true;
continue;
}
Expand Down
2 changes: 1 addition & 1 deletion templates/workflows/sync-squad-labels.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ jobs:
const members = [];
let inMembersTable = false;
for (const line of lines) {
if (line.startsWith('## Members')) {
if (line.match(/^##\s+(Members|Team Roster)/i)) {
inMembersTable = true;
continue;
}
Expand Down