Agent Skill
2/7/2026

ringregulatory-templates-setup

Initial setup sub-skill - handles template selection and context initialization for the 3-gate regulatory workflow.

L
lerianstudio
102GitHub Stars
1Views
npx skills add LerianStudio/ring

SKILL.md

Nameringregulatory-templates-setup
DescriptionInitial setup sub-skill - handles template selection and context initialization for the 3-gate regulatory workflow.

name: ring:regulatory-templates-setup description: | Initial setup sub-skill - handles template selection and context initialization for the 3-gate regulatory workflow.

trigger: |

  • Called by regulatory-templates orchestrator at workflow start
  • Need to select template type and initialize context

skip_when: |

  • Not in regulatory-templates workflow
  • Setup already completed for current template

sequence: after: [regulatory-templates] before: [regulatory-templates-gate1]

Regulatory Templates - Initial Setup

Overview

This sub-skill handles the initial setup phase for regulatory template creation, including template selection and context initialization.

Parent skill: regulatory-templates

Output: Complete initial context object with all selections and configurations


Foundational Principle

Setup initializes the foundation - errors here propagate through all 3 gates.

Setup is not "just configuration" - it's critical validation:

  • Template selection: Wrong template = entire workflow on wrong regulatory spec (hours wasted)
  • Context initialization: Incomplete context = gates fail mysteriously downstream
  • Dictionary status check: Skipped check = lost automation, unnecessary interactive validation
  • User awareness: No alert about validation mode = poor UX, blocked progress

Skipping setup steps means:

  • Hard-coded context bypasses validation (typos, wrong versions)
  • Missing values cause gate failures (debugging waste)
  • Silent dictionary check = user unprepared for interactive validation
  • No audit trail of selections (compliance gap)

Setup is the contract between user intent and gate execution. Get it wrong = everything downstream breaks.


When to Use

Called by: regulatory-templates skill at the beginning of the workflow

Purpose: Gather all user selections and initialize the context object that will flow through all gates


NO EXCEPTIONS - Setup Requirements Are Mandatory

Setup requirements have ZERO exceptions. Foundation errors compound through all gates.

Common Pressures You Must Resist

PressureYour ThoughtReality
Ceremony"User said CADOC 4010, skip selection"Validation confirms, prevents typos, initializes full context
Speed"Hard-code context, skip AskUserQuestion"Bypasses validation, loses audit trail, breaks contract
Simplicity"Dictionary check is file I/O ceremony"Check determines validation mode (auto vs interactive 40 min difference)
Efficiency"Skip user alert, they'll see validation later"Poor UX, unprepared user, blocked progress

Setup Requirements (Non-Negotiable)

Template Selection:

  • ✅ REQUIRED: Use AskUserQuestion for authority and template selection
  • ❌ FORBIDDEN: Hard-code based on user message, skip selection dialog
  • Why: Validation confirms correct template, prevents typos, establishes audit trail

Dictionary Status Check:

  • ✅ REQUIRED: Check ~/.claude/docs/regulatory/dictionaries/ for template dictionary
  • ❌ FORBIDDEN: Skip check, assume no dictionary exists
  • Why: Determines validation mode (automatic vs interactive = 40 min time difference)

User Alert:

  • ✅ REQUIRED: Alert user if interactive validation required (no dictionary)
  • ❌ FORBIDDEN: "They'll figure it out in Gate 1"
  • Why: User preparedness, UX, informed consent for 40-min validation process

Complete Context:

  • ✅ REQUIRED: Initialize ALL context fields (authority, template_code, template_name, dictionary_status, documentation_path)
  • ❌ FORBIDDEN: Minimal context, "gates will add details later"
  • Why: Incomplete context causes mysterious gate failures

The Bottom Line

Setup shortcuts = silent failures in all downstream gates.

Setup is foundation. Wrong template selection wastes hours on wrong spec. Missing context breaks gates mysteriously. Skipped checks lose automation.

If tempted to skip setup, ask: Am I willing to debug gate failures from incomplete initialization?


Rationalization Table

ExcuseWhy It's WrongCorrect Response
"User already said CADOC 4010"Validation confirms, prevents typos (4010 vs 4020)Run selection
"Hard-code context is faster"Bypasses validation, loses audit trailUse AskUserQuestion
"Dictionary check is ceremony"Determines 40-min validation mode differenceCheck dictionary
"They'll see validation in Gate 1"Poor UX, unprepared userAlert if interactive
"Just pass minimal context"Incomplete causes mysterious gate failuresInitialize ALL fields
"Setup is just config"Foundation errors compound through 3 gatesSetup is validation

If You Find Yourself Making These Excuses

STOP. You are rationalizing.

Setup appears simple but errors propagate through 4-6 hours of gate execution. Foundation correctness prevents downstream waste.



Severity Calibration

MUST classify setup issues using these severity levels:

SeverityDefinitionExamplesGate Impact
CRITICALBLOCKS workflow progression OR invalidates foundation- Template not in registry<br>- Authority selection invalid<br>- Context initialization failed<br>- Required field missing from contextHARD BLOCK - Cannot proceed to Gate 1
HIGHREQUIRES resolution for accurate gate execution- Dictionary status unknown<br>- Documentation path missing<br>- Template code incorrect<br>- User not alerted about validation modeMUST resolve before Gate 1
MEDIUMSHOULD fix for optimal workflow- Deadline not specified (using default)<br>- Optional context fields missing<br>- Documentation incompleteSHOULD resolve - document if deferred
LOWMinor improvements possible- Context verbosity<br>- Naming improvements<br>- Additional metadataOPTIONAL - note in report

Classification Rules:

CRITICAL = ANY of:

  • Template selection cannot be validated against registry
  • Authority is not BACEN or RFB (invalid for Brazilian regulatory)
  • Context object missing required fields (authority, template_code, template_name)
  • Setup steps cannot complete

HIGH = ANY of:

  • Dictionary status not checked (determines 40-min vs automatic validation)
  • User not informed about interactive validation requirement
  • Documentation path not set correctly
  • Template metadata incomplete

Blocker Criteria - STOP and Report

You MUST distinguish between decisions you CAN make vs those requiring escalation.

Decision TypeExamplesAction
Can DecideDefault deadline, context field ordering, documentation formatProceed with setup
MUST EscalateTemplate not in registry, user selection unclear, multiple valid authoritiesSTOP and ask for clarification
CANNOT OverrideAskUserQuestion requirement, dictionary check, context completeness, user alert for interactive modeHARD BLOCK - Must complete before Gate 1

HARD GATES (STOP immediately):

  1. Template Not Found: Template missing from registry
  2. Ambiguous Selection: User response doesn't match available templates
  3. Missing Context: Required context fields cannot be populated
  4. Dictionary Check Skipped: Cannot determine validation mode without check

Escalation Message Template:

⛔ **SETUP BLOCKER - Cannot Initialize Context**

**Issue:** [Specific blocker]
**Impact:** [What cannot be determined/initialized]
**Required:** [What needs resolution]

**Cannot proceed to Gate 1 until resolved.**

Cannot Be Overridden

NON-NEGOTIABLE requirements (no exceptions, no user override):

RequirementWhy NON-NEGOTIABLEVerification
AskUserQuestion for SelectionPrevents typos, validates against registry, creates audit trailUsed AskUserQuestion tool
Dictionary Status CheckDetermines validation mode (40-min difference)Checked dictionary path
User Alert for Interactive ModeUX requirement, informed consent for long processAlert shown if no dictionary
Complete Context InitializationIncomplete context causes mysterious gate failuresALL required fields populated
Template Registry ValidationEnsures template exists and is supportedTemplate verified in registry

CANNOT allow user to:

  • Skip template selection ("I already told you CADOC 4010" = NO - validate anyway)
  • Bypass dictionary check ("just assume no dictionary" = NO)
  • Skip user alert ("they'll figure it out" = NO)
  • Initialize partial context ("add missing fields later" = NO)
  • Hard-code selections ("same as last time" = NO - run selection)

Pressure Resistance

See shared-patterns/pressure-resistance.md for universal pressure scenarios.

Setup-Specific Pressures

User SaysYour Response
"I already said CADOC 4010, just start""I MUST validate the selection against our registry. This takes 30 seconds and prevents typos (4010 vs 4020). Running AskUserQuestion now."
"Skip dictionary check, it doesn't exist""I CANNOT skip the dictionary check. It determines if we need 40-minute interactive validation or can proceed automatically. Checking now."
"Don't alert me, just proceed""I MUST inform you if interactive validation is required. This is a 40-minute process that requires your input. You need to be prepared."
"Just use the same template as last time""I CANNOT hard-code previous selections. Each workflow MUST validate against current registry. Requirements may have changed."
"Setup is ceremony, go straight to analysis""I CANNOT skip setup. It initializes the context that ALL gates depend on. Incomplete setup = mysterious failures in Gates 1-3."

Setup Steps

Step 1: Regulatory Authority Selection

AskUserQuestion: "Which regulatory authority template?"

OptionDescription
CADOCBACEN - Cadastro de Clientes do SFN
e-FinanceiraRFB - SPED e-Financeira
DIMPRFB - Declaração de Informações sobre Movimentação Patrimonial
APIXBACEN - Open Banking API

Step 1.1: Template Selection (Conditional by Authority)

AskUserQuestion: Show template options based on authority selected:

AuthorityQuestionOptions
CADOC"Which CADOC document?"4010 (Cadastro), 4016 (Crédito), 4111 (Câmbio)
e-Financeira"Which event?"evtCadDeclarante, evtAbertura, evtFechamento, evtMovOpFin, evtMovPP, evtMovOpFinAnual
DIMP"Which version?"v10 (current)
APIX"Which API?"001 (Cadastrais), 002 (Contas/Transações)

Template Registry:

CategoryCodeNameFrequencyFormatFATCA/CRS
CADOC4010Informações de CadastroMonthlyXMLN/A
CADOC4016Operações de CréditoMonthlyXMLN/A
CADOC4111Operações de CâmbioDailyXMLN/A
e-FinanceiraevtCadDeclaranteCadastro do DeclarantePer PeriodXMLYes/Yes
e-FinanceiraevtAberturaeFinanceiraAbertura e-FinanceiraSemestralXMLNo/No
e-FinanceiraevtFechamentoeFinanceiraFechamento e-FinanceiraSemestralXMLYes/Yes
e-FinanceiraevtMovOpFinMov. Operações FinanceirasSemestralXMLYes/Yes
e-FinanceiraevtMovPPMov. Previdência PrivadaSemestralXMLNo/No
e-FinanceiraevtMovOpFinAnualMov. Operações Fin. AnualAnnualXMLYes/Yes
DIMPv10DIMP Versão 10AnnualXMLN/A
APIX001Dados CadastraisREST APIJSONN/A
APIX002Contas e TransaçõesREST APIJSONN/A

Capture: Authority (BACEN/RFB), category, code, name, metadata

Step 2: Optional Deadline Input

If not provided by user, use standard deadline for the template type.

Step 3: Check Dictionary Status and Alert User

CRITICAL: Check dictionary BEFORE initializing context. Path: ~/.claude/docs/regulatory/dictionaries/{category}-{code}.yaml

TemplateHas DictionaryValidation Mode
CADOC_4010✅ YesAutomatic
CADOC_4016✅ YesAutomatic
APIX_001✅ YesAutomatic
EFINANCEIRA_evtCadDeclarante✅ YesAutomatic
All others❌ NoInteractive

If NO dictionary exists → AskUserQuestion:

  • Question: "Template has no pre-configured dictionary. Interactive validation required (~40 min). Proceed?"
  • Options: "Proceed with interactive validation" | "Choose different template"
  • Alert user: Query APIs → Suggest mappings → User approval each → Save as new dictionary

Step 4: Initialize Context Object

Base context structure (ALL fields required):

FieldSourceExample
authorityStep 1"BACEN" or "RFB"
template_categoryStep 1"CADOC", "e-Financeira", "DIMP", "APIX"
template_codeStep 1.1"4010", "evtMovOpFin", "v10", "001"
template_nameRegistry"Informações de Cadastro"
template_selectedComputed"CADOC 4010"
dictionary_statusStep 3{has_dictionary, dictionary_path, validation_mode}
documentation_pathRegistry".claude/docs/regulatory/templates/..."
deadlineUser/Default"2025-12-31"
gate1/gate2/gate3Initializenull (populated by subsequent gates)

Template-Specific Extensions:

CategoryExtra Fields
CADOCformat: "XML", frequency: "monthly"/"daily"
e-Financeiraformat: "XML", event_module, event_category, event_frequency, fatca_applicable, crs_applicable
DIMPformat: "XML", frequency: "annual"
APIXformat: "JSON", api_type: "REST"

Documentation Paths:

  • CADOC: .claude/docs/regulatory/templates/BACEN/CADOC/cadoc-4010-4016.md
  • e-Financeira: .claude/docs/regulatory/templates/RFB/EFINANCEIRA/efinanceira.md
  • DIMP: .claude/docs/regulatory/templates/RFB/DIMP/dimp-v10-manual.md
  • APIX: .claude/docs/regulatory/templates/BACEN/APIX/{code}/

State Tracking Output

Output on completion: SKILL: regulatory-templates-setup | STATUS: COMPLETE | TEMPLATE: {template_selected} | DEADLINE: {deadline} | NEXT: → Gate 1

Success Criteria

  • ✅ Template selected and validated
  • ✅ Deadline established (input or default)
  • ✅ Context object initialized with ALL fields
  • ✅ Dictionary status checked

Output: Return complete context object to parent skill.

Skills Info
Original Name:ringregulatory-templates-setupAuthor:lerianstudio