From traxxall-delivery
Single source of truth for all Traxxall delivery conventions: branch naming and VS403660 prefix rejection, commit and PR discipline, work-item model (PBI/Bug/Task only, area path, tags-over-areas, sprint naming), dual-framework table (legacy .NET Framework 4.x vs modern .NET Core), draft-vs-create discipline, auth and egress mechanics, CI pipeline reality, and dev test boundary. All other skills in the set consult this skill rather than re-deriving conventions from memory.
How this skill is triggered — by the user, by Claude, or both
Slash command
/traxxall-delivery:traxxall-standardsThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Load these on demand rather than from memory:
Load these on demand rather than from memory:
kb/traxxall-platform-overview.md — platform facts, Azure services, deployment slot SOP.kb/cicd-qa-deployment-ado.md — ADO delivery process, sprint model, WI types, hotfix workflow, Vlad's role.| Prefix | Used for |
|---|---|
users/ | Individual developer feature/fix branches (most common) |
fixes/ | Hotfixes and targeted repair branches |
features/ | Large feature tracks (rare) |
releases/ | Release and deployment branches |
users/{shortname}/{WI#}-{description}
{shortname}: developer's short name or alias (e.g., sbenson, vlad).{WI#}: the ADO work-item number (integer, no hash symbol in the branch name itself).{description}: kebab-case summary, lowercase, hyphens only, no spaces.Examples of valid branch names:
users/sbenson/16472-admin-query-perfusers/vlad/16500-universalapi-compliance-fixfixes/16510-hotfix-portal-null-refThe ADO repository policy rejects any push to a branch whose name does not start with one of the four allowed prefixes. This surfaces as error VS403660.
When linting a branch name:
/).Example rejection:
perf/admin-query-fixperf/ is not an allowed prefix (VS403660).users/{shortname}/{WI#}-admin-query-fixNever silently accept a non-compliant branch name. Never propose a branch name that would fail VS403660.
#WI-{number} or the ADO AB#{number} link syntax somewhere in the message.Every PR must:
Epics, Features, and User Stories are NOT used in this ADO project. Do not create them. Do not reference them in output.
PBI | Bug
└─ Task (carries the branch; one per developer/component)
└─ QA ticket (owned by PH QA team — never author this from the dev side)
└─ Issue/failure tickets (QA-generated)
Always: Traxxall Solution (verbatim, no sub-paths).
Use tags, not area sub-hierarchy, to segment items:
| Tag | Meaning |
|---|---|
AI First | AI-generated or AI-authored item |
AI Assist | AI-assisted (human-authored with AI help) |
360 | Product: Traxxall 360 |
Admin | Product: admin.traxxall.com |
Portal | Product: Portal |
Inventory/MMS | Product: Inventory / MMS |
MRO | Product: MRO |
Scheduler | Product: Scheduler |
Multiple product tags are allowed. Always include AI First on any AI-authored item.
YYYY-MM-DD (e.g., 2026-07-04).Q3 2026, Q4 2026, etc.| Status | When to apply |
|---|---|
Requires Specification | Requirements unclear — note exactly what is missing. |
Waiting for Specs | Specification is started but awaiting additional detail. |
Ready to Test | Full item ready for PH QA team review. |
Ready to Test Partial | Part of a larger feature ready for QA; remainder still in progress. |
Testing Failed | QA found issues; dev must fix and re-submit. |
Deferred Deployment | Unscheduled; not for immediate deployment. |
Hotfix items carry an HF designation in the title. They flow:
Every skill that touches code areas must declare which framework world the change lives in.
| World | Projects | DI pattern | DbContext |
|---|---|---|---|
| Legacy .NET Framework 4.x | Traxxall.Web, Traxxall.Admin, Traxxall.WebApp, Traxxall.WebApi | ServiceLocator.Current.GetInstance<T>() | EF6; may be resolved ad-hoc via ServiceLocator |
| Modern .NET Core 6/7 | Traxxall.NETCore.WebApi, Traxxall.v2.UniversalAPI, Traxxall.Core.OAuth | Constructor DI | Injected by DI; read-replica opt-in is a constructor bool |
| Shared core | Traxxall.Core, Traxxall.Models, Traxxall.v2.Infrastructure* | Consumed by both | Changes propagate to both API surfaces |
Blast-radius rule: any change to shared core projects must be flagged as high blast-radius in specs, intake briefs, and task descriptions. Add a standards_notes entry: "Shared core touch — changes propagate to both Legacy and Modern API surfaces. Review all consumers before merging.".
traxxall-pbi-author and traxxall-task-decomposer skills escalate to ADO creation ONLY when:
traxxall-ado-auth skill confirms a Work-Items-write PAT scope is available.traxxall-ado-auth installed skill. It retrieves the ADO PAT from macOS keychain via security find-internet-password. Never hardcode a PAT or embed it in a command string.dev.azure.com to bypass egress guardrails. Never construct git push commands with literal blocked-host URLs.az commands: always target dev.azure.com/{org}/{project}. Never use visualstudio.com or vsrm.visualstudio.com.az boards, az repos, git push, or ADO REST calls must invoke traxxall-ado-auth first.| Pipeline | Trigger | What it does |
|---|---|---|
| PR validation | Every PR | Build gate + WI linkage check. This is the build gate — no local build is required before opening a PR. |
| Merge / model propagation | Merge to main | Full CI build + TypeScript model generation + artifact commit back to main. |
| Veracode security scan | Scheduled | Security scan. Developers do not need to interact with this directly. |
No local build required. Never instruct the user to build locally before opening a PR. The PR-validation pipeline is the gate.
No CD. Deployments are manual, slot-based, with warm-up required. Never include a deployment step in a task or spec without explicitly noting it is a manual operation.
UnitTests.Core patterns with TransactionScope rollback. Every database operation is wrapped in a TransactionScope that is never committed, so the test leaves no persistent state.traxxall-dev-tests skill writes tests; it does not run them. Execution is the developer's responsibility after manual review.When invoked in lint mode (task type standards_lint), apply these checks:
Traxxall Solution, at least one product tag is present, AI First tag is present if AI-authored, and an iteration is assigned.AB# link or #WI- reference).Return a lint verdict: PASS or FAIL with the specific issues listed. For FAIL, always include the corrected form.
npx claudepluginhub skobyn/upskill-me --plugin traxxall-deliveryGuides completion of development work by verifying tests, detecting environment, and presenting structured options for merge, PR, or cleanup.
Enforces test-driven development: write failing test first, then minimal code to pass. Use when implementing features or bugfixes.
Guides creation and editing of skills using test-driven development with pressure scenarios and subagents to verify agent compliance.