project-module-architecture_skill

This skill helps you design and navigate a Kotlin project management module, covering project lifecycle, membership, configuration, and governance.
  • Kotlin

2.5k

GitHub Stars

1

Bundled Files

2 months ago

Catalog Refreshed

4 months ago

First Indexed

Readme & install

Copy the install command, review bundled files from the catalogue, and read any extended description pulled from the listing source.

Installation

Preview and clipboard use veilstrat where the catalogue uses aiagentskills.

npx veilstrat add skill tencentblueking/bk-ci --skill project-module-architecture

  • SKILL.md31.2 KB

Overview

This skill documents the project management module architecture for a CI/CD platform, covering project CRUD, member management, configuration, labels, and migration. It summarizes module layout, core concepts, database tables, key classes, and typical flows to guide engineers implementing project-related features in Kotlin microservices.

How this skill works

The guide inspects layered components: API definitions, business logic, DAO, and generated data models, and maps responsibilities across submodules (api-project, biz-project, model-project). It explains the canonical Project entity, which fields other services consume (notably that english_name is the effective projectId), common enums, DB schema, service classes, and end-to-end flows like create, query, and approval.

When to use it

  • Designing or extending project CRUD endpoints and REST contracts.
  • Implementing project member, permission, or approval workflows.
  • Mapping domain fields to other microservices and avoiding ID confusion.
  • Adding project-level configuration, labels, or sharding rules.
  • Planning project data migration or schema changes across services.

Best practices

  • Treat T_PROJECT.english_name as the external projectId used by all services; ignore the UUID PROJECT_ID for cross-service APIs.
  • Keep API layer thin; implement validation and business rules in service classes (AbsProjectServiceImpl and derivatives).
  • Validate names strictly (2-64 chars for display name; lowercase+digits+underscore for english_name).
  • Use centralized permission services and dispatch project events after persistence to ensure consistency.
  • Respect sharding routing and table sharding configs when adding new tables or migration scripts.

Example use cases

  • Create a new project flow: validate input, persist via ProjectDao, register resource in auth, dispatch create event.
  • List projects visible to a user: call permission service, fetch by english_name, assemble ProjectVO.
  • Implement project label functionality: maintain T_PROJECT_LABEL and T_PROJECT_LABEL_REL and expose ServiceProjectTagResource.
  • Add a new project property: extend properties JSON, update service validation and migration scripts.
  • Migrate projects between data sources: update T_SHARDING_ROUTING_RULE and T_TABLE_SHARDING_CONFIG, and coordinate with dispatch listeners.

FAQ

Use T_PROJECT.english_name as the projectId for all cross-service APIs; the PROJECT_ID UUID is internal only.

Where should validation and permission checks live?

Perform validation and permission checks in service layer implementations (e.g., AbsProjectServiceImpl and projectPermissionService) rather than in the API interface layer.

Built by
VeilStrat
AI signals for GTM teams
© 2026 VeilStrat. All rights reserved.All systems operational
project-module-architecture skill by tencentblueking/bk-ci | VeilStrat