Production code in this repository must satisfy each of the following assertions. Each assertion is enforced by dependency-cruiser (TypeScript) or NetArchTest.Rules (.NET) where applicable; legacy import utilities, when added, must satisfy the same assertions.
New runtime code must not reference VSTO APIs (Microsoft.Office.Tools.*).
New runtime code must not reference Outlook desktop automation APIs (Microsoft.Office.Interop.Outlook).
New runtime code must not expose COM-visible interfaces ([ComVisible(true)] attribute is banned in production code).
New runtime code must not use Ribbon extensibility callbacks tied to the desktop object model.
New runtime code must not depend on local Outlook event streams.
New runtime code must not depend on Outlook user-defined fields as the primary state store.
Mailbox data must be accessed only through Office.js or Microsoft Graph.
Business behavior must be implemented in the backend or in host-neutral domain or application modules.
Client UI must be implemented as web UI.
Legacy integration, when required, must be limited to offline data import from files or exported data.
Layer Boundary Assertions (TypeScript)
src/taskpane/ and src/commands/ must not import from backend internals.
Domain modules must not import from Office.js, Microsoft Graph SDK, or any infrastructure adapter.
Adapters may import from domain; domain must not import from adapters.
Layer Boundary Assertions (.NET, applies once the backend exists)
TaskMaster.Domain must have zero references to Outlook PIA, VSTO, or Office.js types.
TaskMaster.Application may depend on TaskMaster.Domain only.
Adapter projects may depend on TaskMaster.Domain and TaskMaster.Application; domain may not depend on adapters.
Enforcement Outcome
Violations of any rule above are PR-blocking findings. CI runs the architecture-boundary stage on every PR; a non-zero violation count fails the stage and prevents merge.
1---2name: architecture-boundaries3description: Converted rule4---56# Converted rule78Source: legacy Claude rule `architecture-boundaries`.910# Architecture Boundaries1112Architecture boundary enforcement is a uniform gate across all tiers (T1–T4). Violations block PRs.1314## Enforcement Tools1516- **TypeScript:** `dependency-cruiser`. Configuration file pattern: `.dependency-cruiser.cjs`.17- **.NET (when the backend exists):** `NetArchTest.Rules`. Test project naming pattern: `*.ArchitectureTests`.1819## No-COM Architecture Rules (enforceable assertions)2021Production code in this repository must satisfy each of the following assertions. Each assertion is enforced by `dependency-cruiser` (TypeScript) or `NetArchTest.Rules` (.NET) where applicable; legacy import utilities, when added, must satisfy the same assertions.22231. New runtime code must not reference VSTO APIs (`Microsoft.Office.Tools.*`).242. New runtime code must not reference Outlook desktop automation APIs (`Microsoft.Office.Interop.Outlook`).253. New runtime code must not expose COM-visible interfaces (`[ComVisible(true)]` attribute is banned in production code).264. New runtime code must not use Ribbon extensibility callbacks tied to the desktop object model.275. New runtime code must not depend on local Outlook event streams.286. New runtime code must not depend on Outlook user-defined fields as the primary state store.297. Mailbox data must be accessed only through Office.js or Microsoft Graph.308. Business behavior must be implemented in the backend or in host-neutral domain or application modules.319. Client UI must be implemented as web UI.3210. Legacy integration, when required, must be limited to offline data import from files or exported data.3334## Layer Boundary Assertions (TypeScript)3536- `src/taskpane/` and `src/commands/` must not import from backend internals.37- Domain modules must not import from Office.js, Microsoft Graph SDK, or any infrastructure adapter.38- Adapters may import from domain; domain must not import from adapters.3940## Layer Boundary Assertions (.NET, applies once the backend exists)4142- `TaskMaster.Domain` must have zero references to Outlook PIA, VSTO, or Office.js types.43- `TaskMaster.Application` may depend on `TaskMaster.Domain` only.44- Adapter projects may depend on `TaskMaster.Domain` and `TaskMaster.Application`; domain may not depend on adapters.4546## Enforcement Outcome4748Violations of any rule above are PR-blocking findings. CI runs the architecture-boundary stage on every PR; a non-zero violation count fails the stage and prevents merge.
Run npx skillmds@latest add drmoisan/architecture-boundaries in your terminal (requires Node.js), paste this page's agent-chat prompt into Claude, Cursor, or any MCP-connected agent, or download the SKILL.md file and copy it into your agent's skills directory.
Converted rule It is listed under Coding & Dev Tools on SkillMD.
This skill has not completed SkillMD's automated safety review yet. SkillMD never runs a skill's scripts for you; review the SKILL.md before installing.
This skill is tagged as working with Claude Code, Claude.ai, OpenAI Codex. SKILL.md is an open format, so most agents that read a skills directory can load it too.
Yes. Installing skills from SkillMD is free, and the skill stays under its author's original license.
drmoisan (@drmoisan) published this skill. Their other Agent Skills are listed on their SkillMD profile.