@clize/clize 0.35.0 → 0.35.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@clize/clize",
3
- "version": "0.35.0",
3
+ "version": "0.35.1",
4
4
  "mcpName": "ai.clize/clize",
5
5
  "description": "The real-world capability layer for AI agents — domains, email, deploy, media, SEO/GEO. CLI + MCP.",
6
6
  "keywords": [
@@ -225,7 +225,14 @@ will — it cannot measure those. That half of the state exists only here.
225
225
  had recorded in prose that `invoice data extraction` was the site's third-best earning URL
226
226
  despite an enterprise-looking SERP; the next day's session opened a fresh ledger, re-derived
227
227
  the enterprise read from the SERP, and marked the page for retargeting. The rule that would
228
- have caught it is in §4 ("Search Console beats the SERP read").
228
+ have caught it is in §4 ("Search Console beats the SERP read"). Import **skip rows and
229
+ cell-level lessons** only. Do not import site-level verdicts — "the content side has nothing
230
+ left", "the bottleneck is authority" — those expire, and are re-derived every round from the
231
+ cell count (§10, cadence); kunavo carried one such verdict through seven rounds, each session
232
+ re-confirming it instead of counting cells. And a family described in prose is not in the
233
+ ledger: a cluster, a locale axis or a page family with no rows and no `target page` will never
234
+ be built — write the rows (kunavo's nine-cell integrations family sat as a paragraph for two
235
+ rounds while every session executed "the existing ledger").
229
236
  - **Narrative goes underneath as footnotes.** Two or three lines about what the pattern means.
230
237
  Not six paragraphs of themes.
231
238
 
@@ -273,8 +280,10 @@ run* — all six have been observed in real runs that read as finished.
273
280
  discussions visible in `items` — so this costs nothing to fix: write them as rows next to
274
281
  the pages they support. Observed in the field (2026-08-31 second run): five funded pages,
275
282
  placement nearly invisible in the deliverable.
276
- 6. **Rows without pages.** Buildable rows — a serp verdict that is not a wall, an intent you can
277
- serve — left unshipped at session end are stock, not output. The deliverable counts shipped
283
+ 6. **Rows without pages — and families without rows.** Buildable rows — a serp verdict that is
284
+ not a wall, an intent you can serve — left unshipped at session end are stock, not output.
285
+ An opportunity written in prose (a cluster, a family, a locale axis) with no rows behind it
286
+ is test 1 wearing a different coat. The deliverable counts shipped
278
287
  URLs, not qualified rows; a ledger of twenty rows and two pages is a session that spent itself
279
288
  on the analysis. Observed on our own tenant zero: eleven weeks of rounds that produced ledgers
280
289
  and no pages. If a page costs a session, the first deliverable is the generator (§7).
@@ -698,7 +707,9 @@ comparison with the ledger's `target page` (§3):
698
707
  ### `gsc.pages` — the page face
699
708
 
700
709
  The question the product exists for is "how much traffic does the final page get", answered by
701
- page since 0.34.0 — three facts side by side, no judgment:
710
+ page since 0.34.0 — three facts side by side, no judgment. Reading it is the first fifteen
711
+ minutes of a round, not the round: the shapes below say what to fix, and the round still
712
+ enumerates and builds (§10).
702
713
 
703
714
  | list | what is in it | the facts per row |
704
715
  | --- | --- | --- |
@@ -773,20 +784,17 @@ sentence (`authority_limited`); the roundups still come from a deliberate `seo s
773
784
 
774
785
  ## 10. The cycle
775
786
 
776
- **The loop starts at measurement, and its purpose is allocation.** Two facts force the entry
777
- point. First, the only thing that *changes* between rounds is the measurement: sv/kd are
778
- monthly-refresh data (cached 30 days) and SERPs move slowly re-run discovery two weeks later
779
- and it returns the same conclusions at the same prices. What changed is what *your* actions
780
- did to the world, and that shows up only in `check`, which is free. Second, the entry read is
781
- the branch point: each round's only real question is **where the next unit of work goes** —
782
- double down where a return signal appeared, stop where none did, discover only when the read
783
- hands you something new. Measurement is the allocator, not a dashboard.
787
+ **The loop starts at measurement, and its purpose is allocation.** Between rounds the only
788
+ thing that changes is what *your* actions did to the world, and that shows up only in `check`,
789
+ which is free (sv/kd are monthly data, SERPs move slowly). The entry read is the branch point:
790
+ each round's real question is **where the next unit of work goes** double down where a signal
791
+ appeared, stop where none did, and keep enumerating cells the ledger has not priced yet.
784
792
 
785
- **A round is four steps: ① read the feedback (`check`, free) → ② allocate (double down / stop
793
+ **A round is five steps: ① read the feedback (`check`, free) → ② allocate (double down / stop
786
794
  loss / new bet) → ③ execute (pages, placement, the occasional paid query) → ④ book it (write
787
- what you put in back into the ledger, §3).** Step is the one that gets skipped, and skipping
788
- it breaks step ② two weeks later: "flat, no signal" and "flat, no signal, *and we already
789
- pitched five roundups*" are different rows leading to different decisions, and nothing but the
795
+ what you put in back into the ledger, §3) report it (two tables, below).** Step is the
796
+ one that gets skipped, and skipping it breaks step ② two weeks later: "flat, no signal" and
797
+ "flat, no signal, *and we already pitched five roundups*" are different rows, and only the
790
798
  ledger can tell them apart.
791
799
 
792
800
  ```
@@ -794,15 +802,11 @@ clize seo check # free — every session on an existing site starts h
794
802
  ```
795
803
 
796
804
  **Domain of the loop: a site that exists.** `check` needs `--domain` (or a clize project
797
- directory) with neither it errors, correctly. No site yet, or a brand-new venture with
798
- nothing deployed? That is pre-cycle work: run discovery (§1) to decide what to build, ship
799
- the first batch (§7), enroll the keywords the cycle starts at that first check.
800
-
801
- **Round one is not special it is the round that reads zero.** The zeros are your baseline,
802
- and the entry read still pays before you spend a cent: it surfaces the GSC service-account
803
- setup (a 2-minute human step — hand it to your human now, so it runs in parallel with the
804
- analysis), and on a site with any history it hands you free seeds (`gsc.topQueries` /
805
- `newQueries`) before you buy a single word.
805
+ directory). No site yet? That is pre-cycle work: discovery (§1), first batch (§7), enroll — the
806
+ cycle starts at that first check. **Round one is not special it is the round that reads
807
+ zero.** The zeros are the baseline; the entry read still pays before you spend a cent: it
808
+ surfaces the GSC service-account setup (a 2-minute human step — hand it over now, in parallel),
809
+ and on a site with history it hands you free seeds (`gsc.topQueries` / `newQueries`).
806
810
 
807
811
  ### ②–③ Allocate, then execute — branch on what the read says
808
812
 
@@ -816,7 +820,12 @@ analysis), and on a site with any history it hands you free seeds (`gsc.topQueri
816
820
  | `rank.pending` non-empty | those words are not measured yet — no branch applies to them this round; do not read their zero as "missed" |
817
821
  | `authority_limited` | placement only **on that theme** — another page on it will not move it (§6). The label is per keyword, not per site: production continues on every other theme. If every funded theme reads this way, the site is Shape C (top of this file): re-derive the ledger toward tool, long-tail and locale rows before pitching |
818
822
  | `gsc.newQueries` non-empty | mini-discovery: fold them into the matrix, price the new cells, extend the tracked list if they survive the SERP check |
819
- | no movers two rounds running *and* the placement queue is empty | the plan is stale, not slow — back to §1 and re-derive; more waiting will not convert a flat line |
823
+ | no movers two rounds running | the plan is stale, not slow — back to §1 and re-derive toward new page types; more waiting will not convert a flat line. The placement queue does not gate this: a queue that has waited on a human for two rounds is recorded as `blocked:` and handed over, and production goes on without it — placement is human-gated, building is not, and one must never hold the other (kunavo's four ready pitches held production for seven rounds) |
824
+
825
+ **Rows are not exclusive.** A round takes every branch its read matches — a technical fix, a
826
+ placement action and a production batch in the same session is the normal shape, not three
827
+ rounds. `technical round` and `indexing round` say what to do *for those pages*; they never
828
+ cancel the production step for the rest of the site.
820
829
 
821
830
  ### ④ Book the round
822
831
 
@@ -834,17 +843,41 @@ next round's allocation possible:
834
843
  `gsc.pages.unseen` (found by `firstSeen`), and whether this window was another zero. This is
835
844
  the row the next round's batch gate and retire rule read.
836
845
 
837
- The stop-loss branch above ("no movers two rounds running *and* the placement queue is empty")
838
- is answerable only if the previous round wrote down what it put in. The product does not track
839
- your side of the bet, deliberately: it cannot measure whether a pitch was sent, and a field it
840
- cannot measure is just a form for you to fill in. That state lives in the ledger or nowhere.
846
+ The stop-loss branch above ("no movers two rounds running") is answerable only if the previous
847
+ round wrote down what it put in. The product does not track your side of the bet, deliberately:
848
+ it cannot measure whether a pitch was sent, and a field it cannot measure is just a form for you
849
+ to fill in. That state lives in the ledger or nowhere.
850
+
851
+ ### ⑤ Report the round
852
+
853
+ What the human reads ends with two tables, not with findings. First, **this round's pages** —
854
+ every row the round touched, one line each:
855
+
856
+ | keyword | locale | serp | target URL | type | status |
857
+ | --- | --- | --- | --- | --- | --- |
858
+ | hreflang 生成 | ja-JP | open (small sites) | /ja/seo/hreflang-tag-generator/ | tool | built |
859
+ | open webui api key | en-US | open | /docs/integrations/open-webui | integration doc | to build: generator first |
860
+ | claude code preise | de-DE | official_wall | — | — | skip |
861
+
862
+ `status` is one of `built` (shipped this round), `to build` (buildable, not shipped — say why),
863
+ `exists` (a page already carries it), `skip` (with the reason). Second, **placement** — target /
864
+ page / status (`sent` / `drafted` / `blocked: needs human`). Then at most five lines of
865
+ narrative. A report that is findings and no pages table is test 1 (§3) in its final form: the
866
+ human cannot act on a paragraph. A round with an empty pages table says so *in* the table, with
867
+ the cell count that justifies it — kunavo round five delivered four findings, four
868
+ opportunities and no table, and the three buildable families in its own prose went unbuilt.
841
869
 
842
870
  **Cadence**: SEO is a weeks-to-months system and the window `check` measures is 4 weeks wide —
843
- checking daily just re-reads the same window. Every two weeks is plenty. And a round that
844
- re-reads an unchanged window must not re-decide: if `check` shows nothing new since the last
845
- round (same window, no movers, no new queries), the round is execution of the existing ledger,
846
- not a new analysis. tabledi 2026-09-02 re-ran discovery on the same data as 09-01 and flipped
847
- its P0 a recommendation that flips on identical data is not a reading, it is noise.
871
+ checking daily just re-reads the same window. Every two weeks is plenty. A round that re-reads
872
+ an unchanged window must not re-judge *existing rows*: same window, no movers, no new queries
873
+ the P0s stand (tabledi 2026-09-02 re-ran discovery on the same data as 09-01 and flipped its
874
+ P0 a recommendation that flips on identical data is noise). **That rule never means no new
875
+ cells.** Pricing a cell the ledger has never priced is not re-reading the window — the window
876
+ has no opinion on it. Every round, whatever the window: count the ledger's unbuilt buildable
877
+ rows against the site's cell space (§1.2: 100–150 for a full site); fewer than ten → this round
878
+ enumerates (§1) and builds. kunavo, 2026-09-02, round five: same window, ledger exhausted,
879
+ three markets never priced, a nine-cell family in prose — the round shipped zero pages and
880
+ deferred the pricing for the third time, quoting this paragraph.
848
881
 
849
882
  ---
850
883