A curated compliance self-assessment assistant built on Morocco's Law 09-08 (Data Protection) and CNDP requirements, designed under the **ISLI Universal Skill Runtime (USR) v2.0 spec** as an isolated HTTP microservice.
# CNDP Compliance Checklist Skill (ISLI AI v2.0)
A curated compliance self-assessment assistant built on Morocco's Law 09-08 (Data Protection) and CNDP requirements, designed under the **ISLI Universal Skill Runtime (USR) v2.0 spec** as an isolated HTTP microservice.
This skill reinforces local data sovereignty by enabling users and client agents to self-evaluate data protection compliance ahead of deployments.
---
## Features & Exposed Tools
The skill registers three key tools with the ISLI Agent Core:
1. **`get_compliance_checklist`**
- **Endpoint:** `POST /get-checklist`
- **Description:** Returns the complete self-assessment question set grouped into five major categories (Consent, Formalities, Data Subject Rights, Security, and Cross-border Transfers).
2. **`evaluate_compliance`**
- **Endpoint:** `POST /evaluate`
- **Description:** Performs rules-based evaluation using processed data attributes (sensitive fields, hosting locations, and existing policies) to output:
- The corresponding compliance risk rating (**Low**, **Medium**, or **High**).
- Required formalities (e.g. Standard prior declaration vs. strict prior authorization requests).
- Customized action recommendations.
3. **`search_cndp_rules`**
- **Endpoint:** `POST /search-rules`
- **Description:** Instantly queries the static knowledge base of key Law 09-08 Articles (Articles 4, 5, 7, 8, 9, 12, 21, 22, 23, 43, 44) by keywords.
---
## Technical Architecture
The codebase contains:
- `isli-skill.yaml` - The skill manifest mapping runtime targets and JSON Schema parameters.
- `main.py` - FastAPI-based microservice embedding the legal compliance framework, token validation, and the REST endpoints.
- `Dockerfile` - Builds the lightweight Python environment for containerized execution.
### Local Development
1. Install requirements:
```bash
pip install -r requirements.txt
```
2. Start the Uvicorn dev server:
```bash
uvicorn main:app --reload --port 8000
```
3. Test locally using curl or swagger do …