ccppccpp home
Browse the documentation

Plugins · CCPP PQL

Objectives

ADD, REMOVE, MODIFY, REFACTOR, SKIP and CONTINUE describe the results Claude must produce in the active scope.

An objective describes a result, in the scope where it is declared. It ends with ;, has no block and creates no scope.

KeywordPurposeParameters
ADDAdd the described elements or features.1 to N descriptions
REMOVERemove the described elements or behaviors.1 to N descriptions
MODIFYChange the described existing elements.1 to N descriptions
REFACTORRestructure the described code, keeping its observable behavior.1 to N descriptions
SKIPLeave the described work aside and report it as skipped.1 to N descriptions
CONTINUEResume work already started, optionally described.0 or 1 description
FROM @packages/pql {
  ADD "A typed parser", "Its diagnostics catalog";
  FROM @packages/pql/src { REFACTOR "The diagnostics representation"; }
  MODIFY "The package documentation";   // back in the scope packages/pql
}
  • Each description is its own objective: ADD "a", "b"; is two ADD objectives of the same scope.
  • Their order is kept but is not a strict dependency.
  • CONTINUE resumes work; it is never a loop control.

Descriptions

A description is a string with at least one character other than a space. "", " ", numbers, booleans, null, bare words, lists and @ references are refused. Write the result, not the steps: ADD "Rate limiting on the login route" rather than ADD "Open the router and add a middleware".

Placement

An objective sits directly in a scope or in a condition branch of that scope. It closes the block's preamble: stop rules, policy references and HOW directives of that block come before it.

Contradictions

The compiler reports what it can identify and never resolves a conflict by order. The same description (case, spaces and a trailing period ignored) declared both with ADD or MODIFY and with REMOVE in one block is the warning PQL-O001. Other contradictions in natural language are left to Claude, which reports them.

Errors

SituationCode
No description (except CONTINUE)PQL-T001
Several descriptions for CONTINUEPQL-T002
Empty or blank descriptionPQL-T003
Not a stringPQL-T004
No active scopePQL-D004
A block after an objectivePQL-D005