con un clic
project-conventions
Core conventions and patterns for this codebase
Instalar con Codex o Claude Copia este prompt, pégalo en Codex, Claude u otro asistente, y deja que revise la página de la skill y la instale por ti.
Menú
Core conventions and patterns for this codebase
Instalar con Codex o Claude Copia este prompt, pégalo en Codex, Claude u otro asistente, y deja que revise la página de la skill y la instale por ti.
Basado en la clasificación ocupacional SOC
{what this skill teaches agents}
Build real git source, bare remote, and local clone fixtures for CopilotBooster integration tests.
{what this skill teaches agents}
Reusable WinForms pattern for textboxes that accept either a bare GitHub PR/Issue number or a full github.com URL.
Isolate tests for services that write under %LOCALAPPDATA% without touching the real user profile.
Kill a spawned Windows process tree from C# with a Win32 Job Object.
| name | project-conventions |
| description | Core conventions and patterns for this codebase |
| domain | project-conventions |
| confidence | medium |
| source | template |
This is a starter template. Replace the placeholder patterns below with your actual project conventions. Skills train agents on codebase-specific practices — accurate documentation here improves agent output quality.
Always provide a deterministic, non-empty fallback for user-visible identifiers (session names, display names, labels). Never rely on external state (sidecar files, API responses, host resolution) being present synchronously.
Why: Timing races, I/O failures, and external state initialization delays can leave user-facing fields empty. An empty string in a grid cell or label breaks user comprehension and violates the principle of "every item has a meaningful name."
How:
"Session {first-8-chars-of-guid}", "Untitled {timestamp}", "Item {id}"Example from SessionService.cs:
string displaySummary;
if (aliases.TryGetValue(id, out var alias))
{
displaySummary = alias;
}
else if (!string.IsNullOrWhiteSpace(summary))
{
displaySummary = summary;
}
else if (overrides.TryGetValue(id, out var overrideEntry))
{
displaySummary = overrideEntry.Name;
}
else
{
// Fallback: use first 8 chars of session ID as deterministic display name
displaySummary = id.Length >= 8 ? $"Session {id.Substring(0, 8)}" : $"Session {id}";
}
Anti-pattern:
// ❌ BAD: Returns empty string when folder exists but no summary
displaySummary = string.IsNullOrWhiteSpace(folder) ? "(no summary)" : "";
Citation: Trinity's empty-title fix (2026-05-09), SessionService.cs:341-358, .squad/decisions/inbox/trinity-empty-title-fix.md
Describe a key convention or practice used in this codebase. Be specific about what to do and why.
// Add code examples that demonstrate your conventions