prompt-profile 0.2.2 → 0.2.3

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.
Files changed (3) hide show
  1. package/README.md +15 -9
  2. package/dist/bin.js +27 -29
  3. package/package.json +1 -1
package/README.md CHANGED
@@ -6,13 +6,19 @@ collaborate with AI. Uses your logged-in `claude` or `codex` CLI: no API key nee
6
6
  **Analysis sends selected, redacted prompts to your CLI's model service and uses your
7
7
  subscription quota.** Reports and analysis caches stay on your computer.
8
8
 
9
- ![Fictional sample share card](https://erictsai83.github.io/prompt-profile/sample-card.png)
9
+ ![Maintainer collaboration profile](https://erictsai83.github.io/prompt-profile/owner-example/card.en.png)
10
10
 
11
- [Full report](https://erictsai83.github.io/prompt-profile/sample-report.html)
12
- · [Shareable report](https://erictsai83.github.io/prompt-profile/demo/without-personal/report.html)
11
+ [My report](https://erictsai83.github.io/prompt-profile/owner-example/report.html)
12
+ · [繁體中文卡片](https://erictsai83.github.io/prompt-profile/owner-example/card.png)
13
+ · [Fictional example](https://erictsai83.github.io/prompt-profile/sample-report.html)
13
14
  · [Template gallery](https://erictsai83.github.io/prompt-profile/demo/templates/index.html)
14
15
 
15
- All examples use fictional data.
16
+ The card above is my personal analysis from November 1, 2026, rendered with the current
17
+ code. The public report omits prompt quotes, project names and custom instruction names.
18
+ Ability scores describe supported practice in my conversations, not population ranks;
19
+ the API estimate is not my subscription bill. The separate fictional examples and gallery
20
+ are generated from the latest repository code.
21
+ [View the latest README on GitHub](https://github.com/EricTsai83/prompt-profile#readme).
16
22
 
17
23
  ## Quick start
18
24
 
@@ -70,9 +76,9 @@ A Chinese-only request stops if translation still fails; it does not substitute
70
76
 
71
77
  Observations cite verified prompt quotes, but quote matching and model review do not prove an
72
78
  interpretation is correct. Small histories may show “Early observations” instead of a role.
73
- The [radar](docs/ability-scores.md) assesses six AI collaboration abilities from verified quotes in these conversations. Scores describe supported practice, not psychological traits or population ranks; “not assessed” is not a low score.
79
+ The [radar](https://github.com/EricTsai83/prompt-profile/blob/main/docs/ability-scores.md) assesses six AI collaboration abilities from verified quotes in these conversations. Scores describe supported practice, not psychological traits or population ranks; “not assessed” is not a low score.
74
80
 
75
- New analyses also retain [reusable instruction provenance](docs/instruction-provenance.md): what a skill is documented to do, who selected it for the task, and which historical requirements were supplied.
81
+ New analyses also retain [reusable instruction provenance](https://github.com/EricTsai83/prompt-profile/blob/main/docs/instruction-provenance.md): what a skill is documented to do, who selected it for the task, and which historical requirements were supplied.
76
82
 
77
83
  ## Usage
78
84
 
@@ -101,7 +107,7 @@ printed retry command: completed chunks and merges are cached; later steps may u
101
107
 
102
108
  Each analysis saves calls, retries, cache reuse, token coverage and cost provenance, including
103
109
  failed executions. The report shows generation usage separately from historical activity.
104
- See [execution accounting](docs/execution-accounting.md) for recovery, unknown measurements
110
+ See [execution accounting](https://github.com/EricTsai83/prompt-profile/blob/main/docs/execution-accounting.md) for recovery, unknown measurements
105
111
  and cost-threshold limits.
106
112
 
107
113
  ## How much a run uses
@@ -209,8 +215,8 @@ source prompts can be in any language.
209
215
 
210
216
  ## Development
211
217
 
212
- See [CONTRIBUTING.md](CONTRIBUTING.md) for setup, checks and releases, and
213
- [AGENTS.md](AGENTS.md) for architecture and repository rules.
218
+ See [CONTRIBUTING.md](https://github.com/EricTsai83/prompt-profile/blob/main/CONTRIBUTING.md) for setup, checks and releases, and
219
+ [AGENTS.md](https://github.com/EricTsai83/prompt-profile/blob/main/AGENTS.md) for architecture and repository rules.
214
220
 
215
221
  ## License
216
222
 
package/dist/bin.js CHANGED
@@ -4486,7 +4486,7 @@ const productDark = (bg) => ({
4486
4486
  });
4487
4487
  const CLASSIC = {
4488
4488
  id: "classic",
4489
- version: 36,
4489
+ version: 37,
4490
4490
  color: {
4491
4491
  light: {
4492
4492
  bg: "#f6f6f3",
@@ -5163,7 +5163,7 @@ const fontsOf = (theme) => {
5163
5163
  /** Color tokens of a classic or product card. */
5164
5164
  const schemeOf = (theme) => theme.color[theme.card.scheme];
5165
5165
  /** The archetype name, headline and trait chips of a classic or identity card. */
5166
- const identityCopy = (profile, theme, hide, lang, showGraphic, colors, badge = null, width) => {
5166
+ const identityCopy = (profile, theme, hide, lang, showGraphic, colors, badge = null, width, period = null) => {
5167
5167
  const c = contentIn(profile, lang);
5168
5168
  const card = theme.card;
5169
5169
  const font = fontsOf(theme);
@@ -5196,6 +5196,12 @@ const identityCopy = (profile, theme, hide, lang, showGraphic, colors, badge = n
5196
5196
  marginTop: card.headline.gap,
5197
5197
  color: colors.muted
5198
5198
  }, clip(c.headline, 120)),
5199
+ period === null ? null : h("div", {
5200
+ fontSize: card.size.header,
5201
+ color: colors.muted,
5202
+ marginTop: card.headline.gap,
5203
+ flexShrink: 0
5204
+ }, period),
5199
5205
  hide.includes("traits") ? null : h("div", {
5200
5206
  display: "flex",
5201
5207
  gap: card.chips.gap,
@@ -5301,7 +5307,6 @@ const CLASSIC_RADAR = {
5301
5307
  */
5302
5308
  const classicTree = (profile, theme, hide, lang, showUsage, exactDates, avatar) => {
5303
5309
  const k = schemeOf(theme);
5304
- const card = theme.card;
5305
5310
  const showGraphic = !hide.includes("graphic");
5306
5311
  return h("div", {
5307
5312
  width: CARD_WIDTH,
@@ -5318,31 +5323,24 @@ const classicTree = (profile, theme, hide, lang, showUsage, exactDates, avatar)
5318
5323
  muted: k.muted,
5319
5324
  value: k.accent,
5320
5325
  card: k.card
5321
- }, !hide.includes("traits")) : [], copyLayer(theme, [
5322
- h("div", {
5323
- display: "flex",
5324
- justifyContent: "flex-end",
5325
- alignItems: "center"
5326
- }, [hide.includes("stats") ? null : h("div", {
5327
- fontSize: card.size.header,
5328
- color: k.muted
5329
- }, cardPeriod(profile, lang, exactDates))]),
5330
- identityCopy(profile, theme, showGraphic ? [...hide, "traits"] : hide, lang, showGraphic, {
5331
- muted: k.muted,
5332
- chip: {
5333
- color: k.accent,
5334
- backgroundColor: k.accentSoft
5335
- }
5336
- }, avatar && showGraphic ? roleBadge(avatar, lang, {
5337
- fg: k.fg,
5338
- border: k.border
5339
- }) : null, showGraphic ? 520 : void 0),
5340
- h("div", {
5341
- display: "flex",
5342
- flexDirection: "column",
5343
- gap: 18
5344
- }, [metricRow(profile, theme, hide, lang, k.muted, showUsage), cardFooter(profile, theme, hide, lang, k.muted, showUsage, exactDates)])
5345
- ])]);
5326
+ }, !hide.includes("traits")) : [], copyLayer(theme, [h("div", {
5327
+ display: "flex",
5328
+ flex: 1,
5329
+ alignItems: "center"
5330
+ }, [identityCopy(profile, theme, showGraphic ? [...hide, "traits"] : hide, lang, showGraphic, {
5331
+ muted: k.muted,
5332
+ chip: {
5333
+ color: k.accent,
5334
+ backgroundColor: k.accentSoft
5335
+ }
5336
+ }, avatar && showGraphic ? roleBadge(avatar, lang, {
5337
+ fg: k.fg,
5338
+ border: k.border
5339
+ }) : null, showGraphic ? 520 : void 0, hide.includes("stats") ? null : cardPeriod(profile, lang, exactDates))]), h("div", {
5340
+ display: "flex",
5341
+ flexDirection: "column",
5342
+ gap: 18
5343
+ }, [metricRow(profile, theme, hide, lang, k.muted, showUsage), cardFooter(profile, theme, hide, lang, k.muted, showUsage, exactDates)])])]);
5346
5344
  };
5347
5345
  /** A share-first look: identity colors, display type and the activity graphic. */
5348
5346
  const identityTree = (profile, theme, hide, lang, showUsage, exactDates, avatar) => {
@@ -14422,7 +14420,7 @@ const analyze = (input) => Effect.gen(function* () {
14422
14420
  * Package version. Injected by tsdown at build time; during development and tests
14423
14421
  * (tsx / vitest) it falls back to reading package.json.
14424
14422
  */
14425
- const VERSION = "0.2.2";
14423
+ const VERSION = "0.2.3";
14426
14424
  // src/cli/render-error.ts
14427
14425
  /** How to fix an InvalidArgument, per flag. */
14428
14426
  const ARGUMENT_HINTS = {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "prompt-profile",
3
- "version": "0.2.2",
3
+ "version": "0.2.3",
4
4
  "description": "Read your Claude Code / Codex prompt history locally, analyse it with your logged-in claude or codex CLI, and generate a personal profile report.",
5
5
  "keywords": [
6
6
  "ai",