work-with-common-project-structure

Explains the common project structure conventions for organizing codeunits and build pipelines.

Updated Jun 13, 2026
One-click install
npx skills add https://github.com/anionDevelopment/Epew --skill work-with-common-project-structure-aniondevelopment
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: work-with-common-project-structure
Source: https://github.com/anionDevelopment/Epew/tree/main/.agents/skills/work-with-common-project-structure
Command: npx skills add https://github.com/anionDevelopment/Epew --skill work-with-common-project-structure-aniondevelopment

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Repositories following the common project structure use strict conventions for codeunit layout, dependency declaration, and Python-based build automation, and this Skill provides the knowledge needed to navigate and modify such repositories without guessing where things belong. ## Core Features & Use Cases - Codeunit Conventions: Explains where source code, tests, artifacts, and the codeunit.xml descriptor live, and how codeunits declare and consume dependencies via Other/Resources/DependentCodeUnits. - Pipeline Automation Rules: Documents the mandatory Python scripts (Build.py, Linting.py, RunTestcases.py, UpdateDependencies.py, GenerateReference.py) and their required locations and behavior. - Defined Information Sources: Shows how to read codeunit.xml, ProductInformation.xml, changelogs, and GitVersion.yml instead of guessing project metadata. - Use Case: When adding a dependency between two codeunits in a monorepo, consult this Skill to learn that the dependency must be declared in codeunit.xml and consumed only through the DependentCodeUnits artifacts folder. ## Quick Start Explain how to correctly add a dependency from one codeunit to another in a repository using the common project structure.

Frequently Asked Questions about work-with-common-project-structure

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I add a dependency between codeunits in a monorepo?▼

Declare the dependency in the dependentcodeunits element of the codeunit's codeunit.xml file, then consume it only through the Other/Resources/DependentCodeUnits folder containing its build artifacts. Never reference another codeunit's source or artifacts folder directly.

What is the common project structure for codeunits?▼

It is a convention-over-configuration repository layout where each codeunit lives in its own folder with source code, tests, a codeunit.xml descriptor, and standardized Python automation scripts. Build artifacts go to Other/Artifacts and are git-ignored.

Which build scripts must a codeunit contain?▼

A codeunit must provide Python scripts at fixed paths: CommonTasks.py, UpdateDependencies.py, QualityCheck/Linting.py, QualityCheck/RunTestcases.py, Reference/GenerateReference.py, and Build/Build.py. They must exit 0 on success and be runnable unattended.

How do I find the version and metadata of a codeunit?▼

Read the codeunit's codeunit.xml file, which defines name, version, owner, development state, test coverage thresholds, and declared dependencies. Product-level metadata is in .ScriptCollection/ProductInformation.xml.

Where is the changelog located in this project structure?▼

The changelog is always in Other/Resources/Changelog, with one file per version named v<version>.md. Determine the current project version after implementing changes, using scshowprojectversion in ScriptCollection-based repositories.

When should I use the CommonProjectStructureExamples repository?▼

Use it when creating a new codeunit or when unsure how scripts and configuration should look for a specific project type. It contains minimal example codeunits for dotnet, Angular, Python, Maven, Rust, and container-image projects to copy structurally.