Skip to content

Commit 2a14f4b

Browse files
committed
Merge commit 'f8782ee4bb70e8a916bed24c11e9389c28e58481' as 'repos/effect'
2 parents d1f8f2c + f8782ee commit 2a14f4b

1,885 files changed

Lines changed: 620250 additions & 0 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
---
2+
name: grill-me
3+
description: Interview the user about a plan or design until reaching shared understanding, resolving each branch of the decision tree. Use when user wants to stress-test a plan, get grilled on their design, or mentions "grill me".
4+
---
5+
6+
Interview me about every aspect of this plan until we reach a shared understanding and a defensible design.
7+
8+
Ask exactly one question at a time, then wait for my answer before asking the next question.
9+
10+
Use each answer to choose the next highest-leverage unresolved question. Maintain an implicit decision tree of resolved decisions, open questions, assumptions, dependencies, risks, and rejected alternatives.
11+
12+
For each question, include:
13+
14+
- clear answer options when appropriate
15+
- your recommended answer, marked as recommended
16+
- a brief reason for the recommendation
17+
18+
Use open-ended questions when fixed options would prematurely constrain the design space.
19+
20+
Challenge vague, inconsistent, risky, or unsupported assumptions. If an answer creates a contradiction or unresolved dependency, ask a follow-up before moving on.
21+
22+
Cover, as relevant:
23+
24+
- goals and non-goals
25+
- users and stakeholders
26+
- constraints
27+
- alternatives
28+
- APIs and interfaces
29+
- data model
30+
- error handling
31+
- security
32+
- observability
33+
- testing
34+
- migration and rollout
35+
- failure modes
36+
- operational ownership
37+
- success criteria
38+
39+
If repository facts are needed, inspect the codebase instead of asking the user. Do not ask me to provide information that can be determined locally.
40+
41+
When an available user-input tool such as `request_user_input` fits the question, use it to ask one short question with a small set of mutually exclusive options. Otherwise, ask in plain text and present clear possible answers as a numbered list when that helps me answer quickly. Include your recommended option and mark it as recommended.
42+
43+
Stop when the major branches of the design tree have been resolved. Then summarize the agreed design, remaining risks, assumptions, rejected alternatives, and next steps.
Lines changed: 127 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,127 @@
1+
---
2+
name: standard-jsdoc
3+
description: Write, insert, or update Effect public API JSDoc so it satisfies the standard-jsdoc oxlint rule. Use when adding or fixing JSDoc comments, resolving standard-jsdoc diagnostics, preparing docs for JSON extraction, or reviewing public API documentation.
4+
---
5+
6+
Use this skill to write well-formed JSDoc for Effect public APIs.
7+
8+
## Required documentation shape
9+
10+
Use a normal multiline JSDoc comment in TypeScript source:
11+
12+
```ts
13+
/**
14+
* Short description as one paragraph.
15+
*
16+
* **When to use**
17+
*
18+
* Optional practical usage guidance.
19+
*
20+
* **Details**
21+
*
22+
* Optional details for complex APIs, options, overloads, or behavior.
23+
*
24+
* **Gotchas**
25+
*
26+
* Optional edge cases, footguns, or surprising behavior.
27+
*
28+
* **Example** (Short title)
29+
*
30+
* Optional prose explaining the example.
31+
*
32+
* ```ts
33+
* const result = example()
34+
* ```
35+
*
36+
* @category constructors
37+
* @since 1.0.0
38+
*/
39+
```
40+
41+
## Writing rules
42+
43+
- Use sober, practical prose.
44+
- Do not use jargon when a plain word works.
45+
- Do not be clever.
46+
- Do not add filler sections.
47+
- The short description is required and must be exactly one paragraph.
48+
- Optional sections must appear in this order:
49+
1. `**When to use**`
50+
2. `**Details**`
51+
3. `**Gotchas**`
52+
- Include an optional section only when it has useful, non-empty content.
53+
- `**When to use**` is important when the API has close alternatives, trade-offs, or `@see` tags. If `@see` tags are present, inspect the referenced APIs and add `**When to use**` when it helps readers choose between them.
54+
- Add `@see` only for APIs that are similar to the documented API but intended for different situations or usage patterns. Do not add `@see` for loosely related helpers, dependencies, implementation details, or general background links.
55+
- Before deciding whether to include `**Gotchas**`, inspect the implementation and nearby tests for edge cases, footguns, preconditions, surprising behavior, or important failure modes. Add `**Gotchas**` only when you find a real gotcha worth documenting.
56+
- Use exactly one blank line between the short description, sections, examples, and tags.
57+
- Do not use Markdown headings such as `# Heading` or ad hoc bold headings such as `**Notes**`; only the standard headings are allowed.
58+
- Examples must use `**Example** (Title)`, optional prose, and exactly one non-empty `ts` code fence.
59+
- Example titles must be unique after trimming and lowercasing.
60+
- Do not use `@example`.
61+
- Do not put TypeScript code fences outside `**Example** (Title)` sections.
62+
- Inline `{@link Symbol}` targets must resolve to TypeScript symbols; do not link to URLs with `{@link}`.
63+
- Do not document module-level comments; module JSDoc is ignored by this rule.
64+
- `@internal` means the item is ignored; do not rewrite it as public docs.
65+
- Default exports are ignored by this rule and do not need JSDoc.
66+
- Do not add unsupported constructs such as enums or empty exports in checked files.
67+
68+
## Tag rules
69+
70+
When multiple tags are present, keep them in this order:
71+
72+
1. `@deprecated`
73+
2. `@default`
74+
3. `@see`
75+
4. `@category`
76+
5. `@since`
77+
78+
Root declarations:
79+
80+
- Require `@category`.
81+
- Require `@since` with stable semver like `1.2.3`.
82+
- May use `@deprecated` with a non-empty message.
83+
- May use repeated non-empty `@see` tags, but only for similar APIs with different usage patterns.
84+
- Must not use `@default`.
85+
86+
Namespaces and declarations inside namespaces:
87+
88+
- Require `@since` with stable semver like `1.2.3`.
89+
- May use optional `@category`.
90+
- May use `@deprecated` with a non-empty message.
91+
- May use repeated non-empty `@see` tags, but only for similar APIs with different usage patterns.
92+
- Must not use `@default`.
93+
94+
Members:
95+
96+
- JSDoc is optional.
97+
- When member JSDoc is present, it must follow the same short description, section, example, spacing, and tag-order rules.
98+
- May use optional `@since` with stable semver like `1.2.3`.
99+
- May use `@default` with a non-empty value.
100+
- May use `@deprecated` with a non-empty message.
101+
- May use repeated non-empty `@see` tags, but only for similar APIs with different usage patterns.
102+
- Must not use `@category`.
103+
104+
## Updating existing JSDoc
105+
106+
When fixing or updating existing docs:
107+
108+
1. Preserve correct facts and examples.
109+
2. Rewrite the layout into the standard template.
110+
3. Move usage guidance into `**When to use**`; when `@see` tags are present, inspect the referenced APIs and explain selection guidance if useful.
111+
4. Move option, overload, and behavior details into `**Details**`.
112+
5. Move caveats into `**Gotchas**`; if no caveat is already documented, inspect the implementation and nearby tests before deciding whether a `**Gotchas**` section is warranted.
113+
6. Convert `@example` tags and loose `ts` fences into `**Example** (Title)` sections.
114+
7. Preserve valid `@see`, `@deprecated`, `@default`, `@category`, and `@since` tags.
115+
8. Remove `@see` tags that do not point to similar APIs with meaningfully different usage patterns.
116+
9. Remove sections that would be empty.
117+
118+
## Validation
119+
120+
After changing JSDoc governed by the rule, run the narrowest relevant validation:
121+
122+
```sh
123+
pnpm test packages/tools/oxc/test/standard-jsdoc.test.ts
124+
pnpm check:tsgo
125+
```
126+
127+
If the changed package has generated docs, also run `pnpm docgen` from that package directory.
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"effect": patch
3+
---
4+
5+
Added `BigDecimal.sumAll` and `BigDecimal.multiplyAll` for feature parity with `Number` and `BigInt`, closes #1880.
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"effect": patch
3+
---
4+
5+
Schema: add `Chunk` schema, closes #1585.
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
---
2+
"effect": patch
3+
---
4+
5+
Add `Command.withHidden` to hide subcommands from `--help` output, shell completions, and "did you mean?" suggestions, while keeping them fully invocable by exact name.
6+
7+
Useful for experimental or internal subcommands that should be accepted but not advertised on the public CLI surface.
8+
9+
```ts
10+
import { Command } from "effect/unstable/cli"
11+
12+
const experimental = Command.make("experimental").pipe(
13+
Command.withHidden
14+
)
15+
16+
const root = Command.make("mycli").pipe(
17+
Command.withSubcommands([experimental])
18+
)
19+
```
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"effect": patch
3+
---
4+
5+
Add `Config.nested` combinator to scope a config under a named prefix, closes #1437.
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
---
2+
"effect": patch
3+
---
4+
5+
Add `Flag.withHidden` (and `Param.withHidden`) to hide flags from `--help` output and shell completions while keeping them fully parseable on the command line.
6+
7+
Useful for experimental, internal, or deprecated flags that should be accepted but not advertised, e.g. `--experimental-foo`, debug toggles, or escape hatches that are not yet committed to the public CLI surface.
8+
9+
```ts
10+
import { Flag } from "effect/unstable/cli"
11+
12+
const experimental = Flag.boolean("experimental-foo").pipe(
13+
Flag.withHidden
14+
)
15+
```
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"effect": patch
3+
---
4+
5+
Add `DateFromString`, `BigIntFromString`, `BigDecimalFromString`, `TimeZoneNamedFromString`, `TimeZoneFromString`, and `DateTimeZonedFromString` schemas, closes #1941.
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"effect": patch
3+
---
4+
5+
unstable/http Headers: add `removeMany` combinator for removing multiple headers at once
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@effect/platform-browser": patch
3+
---
4+
5+
Adds an IndexedDB backed implementation of `KeyValueStore` as `BrowserKeyValueStore.layerIndexedDb`. This backend allows for non-blocking `KeyValueStore` operations, unlike the existing `Storage` api backed implementations.

0 commit comments

Comments
 (0)