api — ILOS Framework api, mono, covoiturage-gouv-fr, community, ILOS Framework, ai agent skill, ide skills, agent automation, Inversify dependency injection, API development, carpooling api, betagouv projects

v1.0.0
GitHub

About this Skill

Perfect for AI Agents needing advanced API development capabilities with custom IoC frameworks and dependency injection using Inversify. api is a developer skill for building applications with a custom IoC framework and Inversify for dependency injection.

Features

Uses ILOS Framework with Inversify for dependency injection
Supports @handler() decorator for action handlers
Utilizes @serviceProvider() decorator for service providers
Employs @provider() decorator for injectable services
Reads setup and configuration from api/README.md
Leverages Inversify for seamless dependency injection

# Core Topics

covoiturage-gouv-fr covoiturage-gouv-fr
[35]
[12]
Updated: 3/20/2026

Quality Score

Top 5%
59
Excellent
Based on code quality & docs
Installation
SYS Universal Install (Auto-Detect)
> npx killer-skills add covoiturage-gouv-fr/mono/api
Supports 19+ Platforms
Cursor
Windsurf
VS Code
Trae
Claude
OpenClaw
+12 more

Agent Capability Analysis

The api skill by covoiturage-gouv-fr is an open-source community AI agent skill for Claude Code and other IDE workflows, helping agents execute tasks with better context, repeatability, and domain-specific guidance. Optimized for ILOS Framework, Inversify dependency injection, API development.

Ideal Agent Persona

Perfect for AI Agents needing advanced API development capabilities with custom IoC frameworks and dependency injection using Inversify.

Core Value

Empowers agents to build robust applications using a custom IoC framework with Inversify for dependency injection, ideal for carpooling and betagouv projects, and provides key decorators such as @handler(), @serviceProvider(), and @provider() for efficient API development.

Capabilities Granted for api

Building robust carpooling applications with custom IoC frameworks
Developing betagouv projects with efficient dependency injection using Inversify
Defining action handlers with service, method, middlewares, and API routes using @handler() decorator

! Prerequisites & Limits

  • Requires setup and configuration as per api/README.md
  • Specific to custom IoC framework with Inversify for dependency injection
Project
SKILL.md
4.4 KB
.cursorrules
1.2 KB
package.json
240 B
Ready
UTF-8
SKILL.md
Readonly

API Developer Skill

Read api/README.md first for setup, commands, and configuration.

ILOS Framework (IoC)

The API uses a custom IoC framework (ILOS) with Inversify for dependency injection.

Key Decorators

DecoratorPurpose
@handler()Defines action handlers with service, method, middlewares, API routes
@serviceProvider()Decorates service providers with handlers, commands, validators
@provider()Marks injectable service classes
@middleware()Marks middleware classes
@command()CLI commands with signature and options

Key Components

  • Kernel (api/src/pdc/proxy/Kernel.ts): Registers all service providers, connections, and commands
  • Service Providers: Each domain module is a service provider that registers actions and repositories
  • Actions: Extend Action class, implement handle(params, context) method
  • Repositories: Database access layer using PostgreSQL

Service Provider Structure

Each service follows this pattern:

services/<name>/
├── <Name>ServiceProvider.ts   # Registers all components
├── actions/                   # Action handlers
├── repositories/              # Database access
├── contracts/                 # TypeScript interfaces
├── commands/                  # CLI commands (optional)
└── config/                    # Service configuration

Action Pattern

typescript
1@handler({ 2 service: "acquisition", 3 method: "create", 4 middlewares: [ 5 ["validate", CreateJourneyParamsValidator], 6 "scopeToSelf", 7 ], 8 apiRoute: { 9 path: "/v3/journeys", 10 method: "POST", 11 rateLimiter: { max: 2000 }, 12 }, 13}) 14export class CreateJourneyAction extends Action { 15 async handle(params: ParamsType, context: ContextType): Promise<ResultType> { 16 // Implementation 17 } 18}

Repository Pattern

Always use the sql template literal for parameterized queries:

typescript
1import { sql } from "@/lib/pg/sql.ts"; 2 3const result = await this.connection.getClient().query(sql` 4 SELECT * FROM carpools WHERE id = ${id} 5`);

No ORM is used. DenoPostgresConnection.ts is the current provider (replaces LegacyPostgresConnection.ts).

API Routing

  • External REST: GET/POST/PUT/DELETE /v3/{service}/{action}
  • Internal RPC: POST /rpc with { "method": "service:action", "params": {...} }

Routes defined in api/src/pdc/proxy/HttpTransport.ts. External routes should be defined in the Action decorator. Internal RPC calls are being migrated to shared providers in api/src/pdc/providers.

Service Modules

Located in api/src/pdc/services/:

ServicePurpose
acquisitionTrip data capture from operators
authAuthentication (JWT, ProConnect, Dex)
dashboardCRUD for users, operators, territories for app-partners
exportData export functionality
policyCarpooling campaigns
operatorOperator management
territoryTerritory/jurisdiction management
apdfAPDF reporting
ceeMobility tax incentive (CEE)
honorPDF certificate generation
observatoryPublic statistics APIs
geoGeolocation services
companyCompany lookup (INSEE API)

Shared Types

Domain interfaces in shared/ directory — import with @pdc/shared/{domain}. Being deprecated as the older frontend was removed in favor of app-partners.

Docker Compose Overlays

  • docker-compose.base.yml - Service definitions (no exposed ports)
  • docker-compose.dev.yml - Exposes ports for localhost development (default just dc)
  • docker-compose.proxy.yml - Adds Traefik for *.covoiturage.test domains
  • docker-compose.e2e.yml - E2E test configuration (just dc_e2e)

Run just add-hosts to add domain aliases to /etc/hosts.

Deno Configuration

api/deno.jsonc:

  • Import aliases: @/ maps to ./src/ (use Deno's Organise Imports LSP feature)
  • Legacy decorators enabled for Inversify
  • Line width: 120 for formatting

Development Notes

  • NixOS users: Add DOCKER_SOCK=/run/user/1000/docker.sock to api/.env
  • Use just seed-local-users for test accounts (requires APP_ENV=local)
  • Keep test databases with APP_POSTGRES_KEEP_TEST_DATABASES=true, then clean with just drop_test_databases
  • Pre-commit: Talisman for secret detection configured in .talismanrc. Run pre-commit install when hook not found.

FAQ & Installation Steps

These questions and steps mirror the structured data on this page for better search understanding.

? Frequently Asked Questions

What is api?

Perfect for AI Agents needing advanced API development capabilities with custom IoC frameworks and dependency injection using Inversify. api is a developer skill for building applications with a custom IoC framework and Inversify for dependency injection.

How do I install api?

Run the command: npx killer-skills add covoiturage-gouv-fr/mono/api. It works with Cursor, Windsurf, VS Code, Claude Code, and 19+ other IDEs.

What are the use cases for api?

Key use cases include: Building robust carpooling applications with custom IoC frameworks, Developing betagouv projects with efficient dependency injection using Inversify, Defining action handlers with service, method, middlewares, and API routes using @handler() decorator.

Which IDEs are compatible with api?

This skill is compatible with Cursor, Windsurf, VS Code, Trae, Claude Code, OpenClaw, Aider, Codex, OpenCode, Goose, Cline, Roo Code, Kiro, Augment Code, Continue, GitHub Copilot, Sourcegraph Cody, and Amazon Q Developer. Use the Killer-Skills CLI for universal one-command installation.

Are there any limitations for api?

Requires setup and configuration as per api/README.md. Specific to custom IoC framework with Inversify for dependency injection.

How To Install

  1. 1. Open your terminal

    Open the terminal or command line in your project directory.

  2. 2. Run the install command

    Run: npx killer-skills add covoiturage-gouv-fr/mono/api. The CLI will automatically detect your IDE or AI agent and configure the skill.

  3. 3. Start using the skill

    The skill is now active. Your AI agent can use api immediately in the current project.

Related Skills

Looking for an alternative to api or another community skill for your workflow? Explore these related open-source skills.

View All

widget-generator

Logo of f
f

Generate customizable widget plugins for the prompts.chat feed system

149.6k
0
Design

linear

Logo of lobehub
lobehub

Linear issue management. MUST USE when: (1) user mentions LOBE-xxx issue IDs (e.g. LOBE-4540), (2) user says linear, linear issue, link linear, (3) creating PRs that reference Linear issues. Provides

73.4k
0
Communication

testing

Logo of lobehub
lobehub

Testing guide using Vitest. Use when writing tests (.test.ts, .test.tsx), fixing failing tests, improving test coverage, or debugging test issues. Triggers on test creation, test debugging, mock setup

73.3k
0
Communication

chat-sdk

Logo of lobehub
lobehub

chat-sdk is a unified TypeScript SDK for building chat bots across multiple platforms, providing a single interface for deploying bot logic.

73.0k
0
Communication