YouBothAgent▾
You — Business rules and flows you own. Read these yourself.
Both — Know the idea; your agent follows the details.
Agent — Conventions and references your agent follows. Look up as needed.














CLI Reference▾
AkanJS Reference▾create-ui, add-field and add-enum-field workflows apply. Run them directly when you already know what you want.view, unit or template — picked with --surface.--app or --module and the command prints an error in its report instead of a prompt.akan sync <app> and akan lint <app> as the next steps.--format json is for scripts and agents. It prints the same report as one JSON object.lib/<module>/ of an existing module: a View, a Unit or a Template.
It writes from the same template akan create-module uses, and touches no other file.
It is the flag form of akan create-view, create-unit and create-template.icecreamOrder.markdown is for a person to read; json is the same report as one object.<Module>.View.tsx exporting General, the detail screen, as a server component.<Module>.Unit.tsx exporting Card, one list or card item, as a server component.<Module>.Template.tsx exporting the General form, with "use client" on line 1.name field; swap in the fields you need.akan sync <app> and then akan lint <app>.<Module>Input in <module>.constant.ts, and its label and description into .model<Module> in <module>.dictionary.ts.
For Int and Float it also adds the akanjs/base import.int are normalized as listed in Notes.markdown is for a person to read; json is the same report as one object.int and integer become Int; float, double and decimal become Float.string, boolean and date are capitalized. Any other name is written as given.number and numeric are refused: use Int for whole numbers and Float for decimals.Int and Float get an import; add the one for ID or a scalar yourself.Upload is refused, since it belongs only in a file-upload body; relate the field to File.Int/Float take a number, Boolean true/false, Date now or a date; others a string.() => dayjs(), so each record gets its own time; a date is written as a thunk too.status; otherwise it repeats the English.akan sync <app> and then akan lint <app>.enumOf class named <Module><Field> in the constant, with the enumOf import added, and its options in the dictionary's .enum stage.
Then it adds the field, typed as that class, exactly as add-field does.status on module order declares OrderStatus.pending,serving,served.--values.markdown is for a person to read; json is the same report as one object.--values instead.add-enum-field.add-field --type <Class> instead.akan sync <app> and then akan lint <app>.akan workflow apply writes it.plan_workflow.akan add-field --field topping …akan workflow plan add-field … --out <path>