@clize/clize 0.35.0 → 0.35.2
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 +1 -1
- package/skills/clize-seo/SKILL.md +106 -41
package/package.json
CHANGED
|
@@ -120,9 +120,10 @@ your list. No amount of enumeration produces this. Fold it back into the matrix
|
|
|
120
120
|
|
|
121
121
|
---
|
|
122
122
|
|
|
123
|
-
## 2. The shape of one
|
|
123
|
+
## 2. The shape of one round
|
|
124
124
|
|
|
125
|
-
A
|
|
125
|
+
A round is a funnel with a known size and a known price — and there is no such thing as an
|
|
126
|
+
"analysis round": every round ends in pages or in a blocker the human must clear (§10).
|
|
126
127
|
|
|
127
128
|
```
|
|
128
129
|
30–100 candidates (§1: competitor teardown + capability matrix)
|
|
@@ -225,9 +226,24 @@ will — it cannot measure those. That half of the state exists only here.
|
|
|
225
226
|
had recorded in prose that `invoice data extraction` was the site's third-best earning URL
|
|
226
227
|
despite an enterprise-looking SERP; the next day's session opened a fresh ledger, re-derived
|
|
227
228
|
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").
|
|
229
|
+
have caught it is in §4 ("Search Console beats the SERP read"). Import **skip rows and
|
|
230
|
+
cell-level lessons** only. Do not import site-level verdicts — "the content side has nothing
|
|
231
|
+
left", "the bottleneck is authority" — those expire, and are re-derived every round from the
|
|
232
|
+
cell count (§10, cadence); kunavo carried one such verdict through seven rounds, each session
|
|
233
|
+
re-confirming it instead of counting cells. And a family described in prose is not in the
|
|
234
|
+
ledger: a cluster, a locale axis or a page family with no rows and no `target page` will never
|
|
235
|
+
be built — write the rows (kunavo's nine-cell integrations family sat as a paragraph for two
|
|
236
|
+
rounds while every session executed "the existing ledger").
|
|
229
237
|
- **Narrative goes underneath as footnotes.** Two or three lines about what the pattern means.
|
|
230
238
|
Not six paragraphs of themes.
|
|
239
|
+
- **Every ledger file counts, and a plan is a queue.** A site may carry more than one ledger
|
|
240
|
+
(tabledi: `worksheet.md` for en-US and `worksheet-global.md` for the other markets); rows in
|
|
241
|
+
all of them are the site's rows, and a round that counts only one file will report "nothing
|
|
242
|
+
to build" beside 27 verified cells. A batch plan written under an earlier count rule (`≤5,
|
|
243
|
+
wait for impressions`) is not re-planned and never "the next batch": each cell is re-gated
|
|
244
|
+
on its own SERP verdict, and every cell that passes is a `to build` row for step ⓪ of the
|
|
245
|
+
next session (§10). tabledi's B1–B4 — 27 locale tool cells, 15 SERPs bought — sat under
|
|
246
|
+
"next batch" through three sessions.
|
|
231
247
|
|
|
232
248
|
**Page batches — the second table in the ledger.** Keyword rows hold bets; the batch table holds
|
|
233
249
|
what the site's composition is doing, and it is what the batch gate and the retire rule (§7.3)
|
|
@@ -245,7 +261,7 @@ sitemap — and `unseenTotal` says how much of the site the list is showing you.
|
|
|
245
261
|
|
|
246
262
|
### The pass/fail test
|
|
247
263
|
|
|
248
|
-
Six ways
|
|
264
|
+
Six ways a round fails. The first is about *what you found*, the last two about *what you
|
|
249
265
|
funded*; the middle three are about *whether you actually ran the analysis you claim to have
|
|
250
266
|
run* — all six have been observed in real runs that read as finished.
|
|
251
267
|
|
|
@@ -273,8 +289,11 @@ run* — all six have been observed in real runs that read as finished.
|
|
|
273
289
|
discussions visible in `items` — so this costs nothing to fix: write them as rows next to
|
|
274
290
|
the pages they support. Observed in the field (2026-08-31 second run): five funded pages,
|
|
275
291
|
placement nearly invisible in the deliverable.
|
|
276
|
-
6. **Rows without pages.** Buildable rows — a serp verdict that is
|
|
277
|
-
serve — left unshipped at session end
|
|
292
|
+
6. **Rows without pages — and families without rows.** Buildable rows — a serp verdict that is
|
|
293
|
+
not a wall, an intent you can serve — left unshipped at session end, or handed to "next
|
|
294
|
+
round" without one of the three blockers in §10 ⑤, are stock, not output.
|
|
295
|
+
An opportunity written in prose (a cluster, a family, a locale axis) with no rows behind it
|
|
296
|
+
is test 1 wearing a different coat. The deliverable counts shipped
|
|
278
297
|
URLs, not qualified rows; a ledger of twenty rows and two pages is a session that spent itself
|
|
279
298
|
on the analysis. Observed on our own tenant zero: eleven weeks of rounds that produced ledgers
|
|
280
299
|
and no pages. If a page costs a session, the first deliverable is the generator (§7).
|
|
@@ -527,6 +546,18 @@ each after the first. clize.ai went from one page per session to seven in one se
|
|
|
527
546
|
a family generator existed, and tabledi shipped forty in two days from one. Build the generator
|
|
528
547
|
before the second page of any family, and never machine-translate a family page.
|
|
529
548
|
|
|
549
|
+
**On a site that already has tools, this round's page count is the locale siblings of the tools
|
|
550
|
+
it has.** A sibling is one strings entry (tabledi: a `DICT` table in `tools/apps.js`; clize.ai:
|
|
551
|
+
a `strings.<loc>.mjs`) and its gate is its own SERP (§7.2). Count existing tools × verified
|
|
552
|
+
locale cells before anything else — tabledi had 23 tools, 6 markets, 27 cells already verified
|
|
553
|
+
open, and three sessions wrote "next batch" beside them while building one page. New tools are
|
|
554
|
+
code and tests, one to three per session: they are the next batch's rows, not this batch's
|
|
555
|
+
excuse. And **building a page that passed the gates is never a question for the human.** The
|
|
556
|
+
human's gates are money, external-facing changes (a redirect, DNS, a published post) and sends.
|
|
557
|
+
Ask for those in one line and build while you wait — never bundle the pages into the question
|
|
558
|
+
(tabledi, 2026-09-02: one redirect that needed a yes was asked together with three pages that
|
|
559
|
+
did not, and all four waited).
|
|
560
|
+
|
|
530
561
|
### 7.1 The pipeline — five steps, each with a pass/fail
|
|
531
562
|
|
|
532
563
|
| step | act | it passed if |
|
|
@@ -698,7 +729,9 @@ comparison with the ledger's `target page` (§3):
|
|
|
698
729
|
### `gsc.pages` — the page face
|
|
699
730
|
|
|
700
731
|
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
|
|
732
|
+
page since 0.34.0 — three facts side by side, no judgment. Reading it is the first fifteen
|
|
733
|
+
minutes of a round, not the round: the shapes below say what to fix, and the round still
|
|
734
|
+
enumerates and builds (§10).
|
|
702
735
|
|
|
703
736
|
| list | what is in it | the facts per row |
|
|
704
737
|
| --- | --- | --- |
|
|
@@ -773,36 +806,35 @@ sentence (`authority_limited`); the roundups still come from a deliberate `seo s
|
|
|
773
806
|
|
|
774
807
|
## 10. The cycle
|
|
775
808
|
|
|
776
|
-
**The loop starts at measurement, and its purpose is allocation.**
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
809
|
+
**The loop starts at measurement, and its purpose is allocation.** Between rounds the only
|
|
810
|
+
thing that changes is what *your* actions did to the world, and that shows up only in `check`,
|
|
811
|
+
which is free (sv/kd are monthly data, SERPs move slowly). The entry read is the branch point:
|
|
812
|
+
each round's real question is **where the next unit of work goes** — double down where a signal
|
|
813
|
+
appeared, stop where none did, and keep enumerating cells the ledger has not priced yet.
|
|
814
|
+
|
|
815
|
+
**A round is a pipeline, and it opens by building.** ⓪ **ship the qualified batch** — every
|
|
816
|
+
`to build` row from the last round and every plan cell with its own SERP verdict (§3), in every
|
|
817
|
+
ledger file — before reading a single number, while the session's budget is whole → ① read the
|
|
818
|
+
feedback (`check`, free) → ② allocate (double down / stop loss / new bet) → ③ execute what is
|
|
819
|
+
cheap now (siblings, retargets, placement drafts) and write the rest as the next session's
|
|
820
|
+
`to build` rows → ④ book it (§3) → ⑤ report it (two tables, below). This round's analysis
|
|
821
|
+
qualifies the *next* round's batch; it does not postpone this one's. Step ⓪ is the step that
|
|
822
|
+
vanished in three consecutive runs: each read, diagnosed, wrote a ledger, named itself an
|
|
823
|
+
"analysis round" and handed the pages to "next time". Step ④ is the other one that gets
|
|
824
|
+
skipped, and skipping it breaks step ② two weeks later: "flat, no signal" and "flat, no signal,
|
|
825
|
+
*and we already pitched five roundups*" are different rows, and only the ledger can tell them
|
|
826
|
+
apart.
|
|
791
827
|
|
|
792
828
|
```
|
|
793
829
|
clize seo check # free — every session on an existing site starts here
|
|
794
830
|
```
|
|
795
831
|
|
|
796
832
|
**Domain of the loop: a site that exists.** `check` needs `--domain` (or a clize project
|
|
797
|
-
directory)
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
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.
|
|
833
|
+
directory). No site yet? That is pre-cycle work: discovery (§1), first batch (§7), enroll — the
|
|
834
|
+
cycle starts at that first check. **Round one is not special — it is the round that reads
|
|
835
|
+
zero.** The zeros are the baseline; the entry read still pays before you spend a cent: it
|
|
836
|
+
surfaces the GSC service-account setup (a 2-minute human step — hand it over now, in parallel),
|
|
837
|
+
and on a site with history it hands you free seeds (`gsc.topQueries` / `newQueries`).
|
|
806
838
|
|
|
807
839
|
### ②–③ Allocate, then execute — branch on what the read says
|
|
808
840
|
|
|
@@ -816,7 +848,12 @@ analysis), and on a site with any history it hands you free seeds (`gsc.topQueri
|
|
|
816
848
|
| `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
849
|
| `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
850
|
| `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
|
|
851
|
+
| 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) |
|
|
852
|
+
|
|
853
|
+
**Rows are not exclusive.** A round takes every branch its read matches — a technical fix, a
|
|
854
|
+
placement action and a production batch in the same session is the normal shape, not three
|
|
855
|
+
rounds. `technical round` and `indexing round` say what to do *for those pages*; they never
|
|
856
|
+
cancel the production step for the rest of the site.
|
|
820
857
|
|
|
821
858
|
### ④ Book the round
|
|
822
859
|
|
|
@@ -834,17 +871,45 @@ next round's allocation possible:
|
|
|
834
871
|
`gsc.pages.unseen` (found by `firstSeen`), and whether this window was another zero. This is
|
|
835
872
|
the row the next round's batch gate and retire rule read.
|
|
836
873
|
|
|
837
|
-
The stop-loss branch above ("no movers two rounds running
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
|
|
874
|
+
The stop-loss branch above ("no movers two rounds running") is answerable only if the previous
|
|
875
|
+
round wrote down what it put in. The product does not track your side of the bet, deliberately:
|
|
876
|
+
it cannot measure whether a pitch was sent, and a field it cannot measure is just a form for you
|
|
877
|
+
to fill in. That state lives in the ledger or nowhere.
|
|
878
|
+
|
|
879
|
+
### ⑤ Report the round
|
|
880
|
+
|
|
881
|
+
What the human reads ends with two tables, not with findings. First, **this round's pages** —
|
|
882
|
+
every row the round touched, one line each:
|
|
883
|
+
|
|
884
|
+
| keyword | locale | serp | target URL | type | status |
|
|
885
|
+
| --- | --- | --- | --- | --- | --- |
|
|
886
|
+
| hreflang 生成 | ja-JP | open (small sites) | /ja/seo/hreflang-tag-generator/ | tool | built |
|
|
887
|
+
| open webui api key | en-US | open | /docs/integrations/open-webui | integration doc | to build: generator first |
|
|
888
|
+
| claude code preise | de-DE | official_wall | — | — | skip |
|
|
889
|
+
|
|
890
|
+
`status` is one of `built` (shipped this round), `to build`, `exists` (a page already carries
|
|
891
|
+
it), `skip` (with the reason). A `to build` row carries a blocker, and only three exist:
|
|
892
|
+
`needs human` (a redirect, a send, money — asked in one line, §7), `needs tool code` (a new
|
|
893
|
+
client-side tool; name the session it ships in), `needs generator` (no family scaffold yet).
|
|
894
|
+
"Analysis round", "next batch" and "awaiting go-ahead" are not blockers — a row wearing one of
|
|
895
|
+
those means the session is not finished, and it goes back to step ⓪. Second, **placement** — target /
|
|
896
|
+
page / status (`sent` / `drafted` / `blocked: needs human`). Then at most five lines of
|
|
897
|
+
narrative. A report that is findings and no pages table is test 1 (§3) in its final form: the
|
|
898
|
+
human cannot act on a paragraph. A round with an empty pages table says so *in* the table, with
|
|
899
|
+
the cell count that justifies it — kunavo round five delivered four findings, four
|
|
900
|
+
opportunities and no table, and the three buildable families in its own prose went unbuilt.
|
|
841
901
|
|
|
842
902
|
**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.
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
903
|
+
checking daily just re-reads the same window. Every two weeks is plenty. A round that re-reads
|
|
904
|
+
an unchanged window must not re-judge *existing rows*: same window, no movers, no new queries →
|
|
905
|
+
the P0s stand (tabledi 2026-09-02 re-ran discovery on the same data as 09-01 and flipped its
|
|
906
|
+
P0 — a recommendation that flips on identical data is noise). **That rule never means no new
|
|
907
|
+
cells.** Pricing a cell the ledger has never priced is not re-reading the window — the window
|
|
908
|
+
has no opinion on it. Every round, whatever the window: count the ledger's unbuilt buildable
|
|
909
|
+
rows against the site's cell space (§1.2: 100–150 for a full site); fewer than ten → this round
|
|
910
|
+
enumerates (§1) and builds. kunavo, 2026-09-02, round five: same window, ledger exhausted,
|
|
911
|
+
three markets never priced, a nine-cell family in prose — the round shipped zero pages and
|
|
912
|
+
deferred the pricing for the third time, quoting this paragraph.
|
|
848
913
|
|
|
849
914
|
---
|
|
850
915
|
|