cc-data-organization

Audit and fix data organization: variable declarations, data types, magic numbers, naming conventions, and global data. Three modes: CHECKER (92-item checklist -> status table), APPLIER (type selection and naming guidance), TRANSFORMER (fix violations). Cover modern types: concurrent/shared state, nullable/optional, temporal/timezone, security-sensitive. Use when reviewing code for data organization issues, choosing data types, or fixing magic numbers. Triggers on: review variables, data types, magic numbers, naming, global data, check types, fix floats, constants.

16 stars

Best use case

cc-data-organization is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Audit and fix data organization: variable declarations, data types, magic numbers, naming conventions, and global data. Three modes: CHECKER (92-item checklist -> status table), APPLIER (type selection and naming guidance), TRANSFORMER (fix violations). Cover modern types: concurrent/shared state, nullable/optional, temporal/timezone, security-sensitive. Use when reviewing code for data organization issues, choosing data types, or fixing magic numbers. Triggers on: review variables, data types, magic numbers, naming, global data, check types, fix floats, constants.

Teams using cc-data-organization should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/cc-data-organization/SKILL.md --create-dirs "https://raw.githubusercontent.com/diegosouzapw/awesome-omni-skill/main/skills/testing-security/cc-data-organization/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/cc-data-organization/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How cc-data-organization Compares

Feature / Agentcc-data-organizationStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Audit and fix data organization: variable declarations, data types, magic numbers, naming conventions, and global data. Three modes: CHECKER (92-item checklist -> status table), APPLIER (type selection and naming guidance), TRANSFORMER (fix violations). Cover modern types: concurrent/shared state, nullable/optional, temporal/timezone, security-sensitive. Use when reviewing code for data organization issues, choosing data types, or fixing magic numbers. Triggers on: review variables, data types, magic numbers, naming, global data, check types, fix floats, constants.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# Skill: cc-data-organization

## STOP - Priority 1: Never Skip

| Item | Why Critical |
|------|--------------|
| No magic numbers in business logic | Source of silent bugs |
| Currency uses integer cents, never float | Financial bugs are lawsuits |
| No float == comparisons | Non-deterministic failures |
| Variables initialized before use | Undefined behavior |
| Boolean naming is unambiguous | Logic inversion bugs |

**Skipping Priority 1 items is NEVER acceptable.** They represent latent defects that will manifest later.

---

## Modes

### CHECKER
Purpose: Execute data organization checklists against code
Triggers:
  - "review my variable declarations"
  - "check for magic numbers"
  - "review data type usage"
  - "check my variable names"
Non-Triggers:
  - "what type should I use for X" -> APPLIER
  - "how should I name this variable" -> APPLIER
  - "fix these magic numbers" -> TRANSFORMER
Checklist: **See [checklists.md](./checklists.md)**
Metrics: **See [hard-data.md](./hard-data.md)** for Span/Live Time measures (goal: minimize both)
Output Format:
  | Item | Status | Evidence | Location |
  |------|--------|----------|----------|
Severity:
  - VIOLATION: Fails checklist item
  - WARNING: Partial compliance
  - PASS: Meets requirement

### APPLIER
Purpose: Guide data type selection, variable naming, and structure design
Triggers:
  - "what data type should I use for..."
  - "how should I name this variable"
  - "best practice for enums/constants"
  - "how should I organize this data"
Non-Triggers:
  - "review my types" -> CHECKER
  - "fix this" -> TRANSFORMER
  - "audit my code" -> CHECKER
Produces: Type recommendations, naming conventions, enum patterns, constant definitions, structure designs
Constraints:
  - [p.308] **Eliminate semantic literals** - Replace business values (`86400`, `12`, `0.07`) with named constants. Loop bounds `0`, `1` and array indices are typically fine.
  - [p.295] For currency: integer cents or BCD, never float
  - [p.306] **Enums (language-dependent):**
    - C/C++: Reserve 0 for invalid, define First/Last bounds
    - TypeScript string enums: No zero-reservation needed (no uninitialized risk)
    - Rust/Kotlin: Leverage exhaustive matching instead of bounds checks
  - [p.259] **Minimize scope**: Declare variables in innermost block where all usages occur. Balance with testability—sometimes slightly wider scope enables testing.
  - [p.263] **Names describe the entity clearly**: Reader should understand purpose without searching for definition. Examples: `d` (bad) → `data` (vague) → `userData` (better) → `validatedUserSubmission` (good for complex entity)
  - [p.279] Problem Orientation: names refer to problem domain (employeeData, printerReady), not computing (inputRec, bitFlag)
  - [p.263] **Name length heuristic**: 2-4 words, long enough to describe purpose, short enough to scan. Research shows 10-16 chars minimizes debugging effort [Gorla et al. 1990], but this is guidance, not a hard rule.

### TRANSFORMER
Purpose: Fix data organization violations
Triggers:
  - CHECKER findings with VIOLATION status
  - "replace magic numbers with constants"
  - "fix float comparison"
  - "refactor these globals"
Non-Triggers:
  - Large refactorings beyond data organization -> cc-refactoring-guidance
  - Control flow restructuring -> cc-control-flow-quality
Input -> Output:
  - Magic `86400` -> `SECONDS_PER_DAY = 86400`
  - `if (a == b)` floats -> `if (Math.abs(a-b) < EPSILON)`
  - `true, false, true` params -> enum values
  - Unstructured variables -> grouped structure
  - Direct global access -> access routines
Preserves: Behavior, unrelated code
Verification: Re-run CHECKER; VIOLATION count = 0

## Rationalization Counters
| Excuse | Reality |
|--------|---------|
| "Everyone knows what 12 means" | Named constants aid maintenance [Glass 1991] |
| "Floats are close enough for ==" | 0.1 added 10 times rarely equals 1.0 |
| "Magic numbers are faster to type" | Debugging hard-coded literals takes far longer |
| "I don't need custom types" | One typedef change vs hundreds of declarations |
| "Short names are faster to type" | Code read far more than written; favor read-time convenience |
| "Global variables are more convenient" | Convenience writing trades against difficulty reading, debugging, modifying |

### Sunk Cost Counters
**For resisting changes to "working" code:**

| Excuse | Reality |
|--------|---------|
| "It works, why change it?" | Violations are latent defects; "works" means "hasn't failed yet" |
| "I already invested time in this" | Time invested in bad code is lost regardless; fix now or pay more later |
| "Refactoring will break things" | Violations already broken; you just haven't discovered how yet |
| "Currency has always used floats here" | Every penny calculation is a potential lawsuit |
| "We've had no bugs from these magic numbers" | You've had bugs—you attributed them to other causes |
| "The code passed review before" | Past reviews missed issues; evidence now shows violations |

### Success-Bias Warning
**Past success does NOT predict future safety.**

Violations that "worked for years" fail when:
- Edge cases finally occur (currency rounding in new scenarios)
- Scale changes (global variable contention under load)
- Maintenance happens (magic numbers misunderstood by new developers)
- Requirements shift (hard-coded values need changing)

**Every checklist item applies regardless of past success.** "Worked until it didn't" examples fill bug databases.

## Modern Data Types Coverage

*Beyond Code Complete's C-era focus:*

### Concurrent Access
When data may be accessed from multiple threads/async contexts:
- **Identify shared state** - Mark variables accessed across thread boundaries
- **Access routines are mandatory** - Never expose shared data directly
- **Consider immutability** - Immutable data eliminates race conditions by design
- **Document thread safety** - Comment whether type/routine is thread-safe
- Violations: Data races, torn reads, lost updates

### Nullable/Optional Types
Modern languages use `Option<T>`, `Maybe`, `T?` instead of null pointers:
- **Prefer non-nullable by default** - Make nullability explicit and intentional
- **Handle all cases** - Exhaustive matching on Option/Maybe types
- **Avoid null as "not found"** - Use Option types or result types instead
- **Document null semantics** - When null is valid, document what it means
- C-style pointer guidance still applies to unsafe code

### Temporal Data
Dates and times are a common bug source:
- **Store timestamps in UTC** - Convert to local only for display
- **Use timezone-aware types** - Never use naive datetime for user-facing data
- **Be explicit about precision** - Seconds, milliseconds, nanoseconds?
- **Name with time unit** - `timeoutMs`, `durationSeconds`, not just `timeout`
- **Avoid magic time values** - `86400` → `SECONDS_PER_DAY`

### Security-Sensitive Data
Secrets, tokens, API keys require special handling:
- **Clear from memory after use** - Don't leave secrets in variables longer than needed
- **Never log sensitive data** - Redact in all log statements
- **Use dedicated types** - `SecureString`, `SensitiveData` wrappers
- **Limit scope aggressively** - Shortest possible lifetime


---

## Chain

| After | Next |
|-------|------|
| Data organization verified | cc-control-flow-quality (CHECKER) |

Related Skills

data-security

16
from diegosouzapw/awesome-omni-skill

Assess data security controls: classification, access, encryption, retention, and exposure risk.

Data Privacy Compliance

16
from diegosouzapw/awesome-omni-skill

Data privacy and regulatory compliance specialist for GDPR, CCPA, HIPAA, and international data protection laws. Use when implementing privacy controls, conducting data protection impact assessments, ensuring regulatory compliance, or managing data subject rights. Expert in consent management, data minimization, and privacy-by-design principles.

ai-training-data-generation

16
from diegosouzapw/awesome-omni-skill

Generate high-quality training datasets from documents, text corpora, and structured content. Use when creating AI training data from dictionaries, documents, or when generating examples for machine learning models. Optimized for low-resource languages and domain-specific knowledge extraction.

relational-database-web-cloudbase

16
from diegosouzapw/awesome-omni-skill

Use when building frontend Web apps that talk to CloudBase Relational Database via @cloudbase/js-sdk – provides the canonical init pattern so you can then use Supabase-style queries from the browser.

Admin and Seed Data

16
from diegosouzapw/awesome-omni-skill

Manage database seeding, reset operations, and the admin interface.

julien-infra-hostinger-database

16
from diegosouzapw/awesome-omni-skill

Manage shared database instances on Hostinger VPS srv759970 - PostgreSQL, Redis, MongoDB operations. Use for database connections, backups, user management, performance checks, or troubleshooting database issues.

database-migrations-migration-observability

16
from diegosouzapw/awesome-omni-skill

Migration monitoring, CDC, and observability infrastructure

database-cloud-optimization-cost-optimize

16
from diegosouzapw/awesome-omni-skill

You are a cloud cost optimization expert specializing in reducing infrastructure expenses while maintaining performance and reliability. Analyze cloud spending, identify savings opportunities, and ...

database-admin

16
from diegosouzapw/awesome-omni-skill

Expert database administrator specializing in modern cloud

azure-data-api-builder

16
from diegosouzapw/awesome-omni-skill

Deploy Data API Builder (DAB) to Azure Container Apps with Azure SQL, Azure Container Registry (ACR), and Azure Developer CLI (azd). Produces Bicep templates, Dockerfile, and azure.yaml. Use when asked to deploy DAB to Azure, create Bicep for DAB, or set up cloud API hosting.

update-codeql-query-dataflow-csharp

16
from diegosouzapw/awesome-omni-skill

Upgrade C# CodeQL queries from legacy (v1) language-specific dataflow API to modern (v2) shared dataflow API while ensuring query result equivalence through test-driven development. Use this skill when modernizing C# dataflow queries to use the unified dataflow library.

sql-databases

16
from diegosouzapw/awesome-omni-skill

SQL query optimization, schema design, indexing strategies, and relational database mastery for production data systems