@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 +1 -1
- package/skills/clize-seo/SKILL.md +68 -35
package/package.json
CHANGED
|
@@ -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
|
|
277
|
-
serve — left unshipped at session end are stock, not output.
|
|
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.**
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
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
|
|
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)
|
|
788
|
-
it breaks step ② two weeks later: "flat, no signal" and
|
|
789
|
-
pitched five roundups*" are different rows
|
|
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)
|
|
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.
|
|
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
|
|
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
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
|
|
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.
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
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
|
|