SL2 · Existing tool
SL2 · Source & revision workflows
How do you keep a source, a draft, and its quotations together through revision?

About this illustration
SL2 preserves supplied text and prepares a reviewable record. Finding a quotation does not establish semantic support or source authenticity.
Public documentation only. Private workbench links and deployment identifiers are not included.
SL2 organizes the source text, draft and exact quotations you provide. It preserves the original, does not rewrite it, and does not decide factual truth or legal correctness.
Start organizing
- Sign in with ChatGPT before pasting text. Sign-in leaves the workbench and clears unsaved input.
- Paste the source and draft into their respective fields. Switching the interface language never translates your text.
- To locate quotations, enter the draft quotation and, optionally, its matching source quotation. Add up to 20 quotation pairs.
- Enter the purpose or open questions, then choose Organize and compare. You can load the public synthetic example to try the workflow.
Review and download
Results show exact quotation locations in both source and draft, plus literal text differences. An exact match does not prove support for a claim; no match does not prove falsity.
JSON contains the complete text, versions, quotations and hashes for re-import. TXT is the readable handoff version. If downloads are unavailable, copy the complete JSON; if clipboard access fails, the text is selected for manual copying.
Check an existing record
Expand Check an existing data package, paste complete JSON exported by SL2, then choose Check package. This checks only the imported record's internal consistency; it neither rewrites the input fields nor authenticates the source. After editing an input or switching the interface language, submit again before downloading results.
Hashes are not digital signatures. A fully rewritten and rehashed package may pass consistency checks; passing does not establish correctness, authenticity or delivery quality.
Typefaces, languages and devices
The workbench and guide provide eight Traditional Chinese typefaces hosted by Tianxin; no device installation is needed. Changing a typeface changes display only, never the source or downloaded text. Page links retain language and typeface preferences; your input text is never placed in the URL.
Phones, tablets and desktops use the same workbench. On smaller screens, two input columns become one; downloads and copying are handled by each device's browser.
Limits and data handling
Each text is limited to 100,000 UTF-16 code units, with up to 20 quotation pairs and 2 MiB per complete request. JSON validation is limited to 1,800,000 UTF-16 code units and the same 2 MiB request limit. An emoji may occupy two UTF-16 units.
Input remains in page memory until processing or validation sends it to SL2. SL2 adds no AI calls, searches or database storage. ChatGPT and hosting policies still apply. Reloading, signing in or leaving clears unsaved content; download or copy anything you need first.
Complete guides & downloads
The complete SL2 0.2.3 English documents are retained below, including their original operating details and verification limits.
Plain-language guide · full text
SL2 | Night Star Source Organizer
Plain-language guide | English | 0.2.3
Currently free of charge
What is it for?
Keep your supplied source, draft, purpose notes and exact quotations together. See changed text and quotation locations, then hand over the complete data to a colleague, editor or reviewer. English and other original languages are preserved without silent translation.
If a source says the deadline has not been announced but a draft adds “October 18,” SL2 can keep both texts, show the literal change and locate the quotations you provide. Finding both sentences does not certify the rewrite. Meaning and reliability need a separate review.
Features and operation
• Use the /sl2/ page on Tianxin or the separate original SL2 ChatGPT plugin.
• The website shows plain Chinese with English directly below; control language can also switch. Supplied text is never translated.
• Select SL2, paste a source and draft, optionally add quotations and a purpose, and choose “Organize and compare.”
• Changing input invalidates the earlier result. Late old responses cannot re-enable downloads; submit the changed text again.
• Quotations bind to the submitted version. The conversation tool can also receive an earlier draft and preserve both versions.
• Download your JSON data package and readable TXT, not the complete tool source code. If the host does not support downloads, copy the complete JSON.
• Give JSON back to SL2 to check internal agreement between text, versions, hashes and quotation positions. Malformed or inconsistent packages are rejected rather than silently repaired.
Sign-in, cost and data
Text processing and package checks require a Sites-provided signed-in identity. ChatGPT/Sites handles installation and sign-in; SL2 collects no separate password. The service is currently free and requires no immediate payment. Availability and usage limits for ChatGPT Free, Pro or other plans remain platform-specific.
Plugin text travels ChatGPT → SL2 cloud Worker → ChatGPT. SL2 makes no additional model calls or external searches, creates no record store, and reads no Drive, Gmail or other user data. No SL2 record store does not mean zero platform retention; ChatGPT and hosting data policies still apply. The contact address is for your own message; the tool sends no email.
Limits
An exact match is not semantic support; no match is not falsity. There is no semantic PASS, legal advice, source-authority decision or product-quality guarantee. Hashes check internal consistency without a digital signature. A completely rewritten and rehashed package may remain consistent. Keep a trusted original or its hash separately for an external comparison.
The computation core stays on the server. The UI displays results and bridges tool calls, without offering complete source-code downloads. This reduces direct source exposure; it does not make reverse engineering impossible or withdraw previously obtained copies.
Current status
The website interface has local desktop, narrow-screen and tablet-size browser tests, including JSON/TXT downloads and JSON validation. Synthetic materials and local sign-in tests do not verify real accounts, strangers, physical phones or installation of the original plugin.
Contact: wingyanshen@gmail.com
mailto:wingyanshen@gmail.com
Name: SL2. Icon: a gold four-point star and three small white stars on deep blue.
Tianxin /sl2/ website: source, draft, purpose and up to 20 quotation pairs. Processing uses same-origin /sl2/mcp to the cloud Worker. Page memory only; no localStorage or SL2 database. Blob JSON/TXT downloads, JSON copy and validation. Positions use UTF-16 units. /sl2/session returns only a sign-in boolean. Sign-in uses top-level /signin-with-chatgpt?return_to=%2Fsl2. The host widget and four tools remain. Real sign-in and physical devices remain unverified.
JSON validation checks only the imported record, not other input fields. Sign in before pasting: sign-in or leaving clears unsaved text. Complete validation requests must fit 2 MiB and the JSON string must not exceed 1,800,000 UTF-16 units. Oversized complete output remains downloadable but cannot be revalidated by this service; it is never truncated or silently repaired.
Technical guide · full text
SL2 | Tianxin website technical guide | 0.2.3
Currently free of charge
This Tianxin website
project_id=[private project ID omitted]
Site origin: [private origin omitted]
Entry: /sl2/ (Vinext may canonicalize to /sl2; fixed document base=/sl2/).
The page processes text and validates JSON through same-origin POST /sl2/mcp. GET /sl2/session returns only an authenticated boolean with cache-control: no-store.
Data path: visitor browser → SL2 handler in the Tianxin cloud service → the same browser. No cross-Site call to the original plugin. The manifest retains Tianxin's project_id, d1:null and r2:null; no mcp capability or new plugin registration is added.
Identity and Origin
Absent Origin follows the normal server-to-server checks. A present Origin must exactly equal the request URL's origin, otherwise 403 precedes body processing. This website does not permit https://chatgpt.com or the original SL2 Site as cross-origin browser callers. The route removes all access-control-* response headers; no CORS permission is provided. GET /sl2/mcp is 405, without SSE.
sl2_compare_texts and sl2_validate_handoff return 401 without a nonblank Sites oai-authenticated-user-id. Neither a service bearer nor clientRequestId supplies visitor identity. Injection and spoofed-header removal by Sites require real platform testing; synthetic headers and local sign-in do not prove that boundary.
Sign-in uses top-level /signin-with-chatgpt?return_to=%2Fsl2 (or %2Fsl2%2F when pathname retains the slash), with pathname only, never text or query. No fetch sign-in or separate OAuth. Signing in or leaving clears page memory; a notice precedes input, and existing input triggers a cancellable navigation confirmation. A 401 never redirects automatically.
Interface and results
The website accepts source, draft, purpose and up to 20 quotation pairs. Plain Chinese explanations have English directly below; supplied text is not translated. Each quotation separately displays sourceLiteral and draftLiteral counts, not-found/not-provided states and each side's UTF-16 line/column positions. All positions returned by the backend are shown (up to 200 per side); further matches have an explicit shown/total count. Literal matches do not establish semantic support.
Compare results are labeled as submitted text. JSON validation is labeled as an imported record and exposes its full source/draft for review without replacing other input fields. Revision, snapshot, RPC id and clientRequestId bind responses. Edits, late/reversed/timed-out or mismatched responses cannot enable stale exports.
Text/results remain in page memory, without localStorage, analytics, additional AI, search or an SL2 database. Processing/validation sends only the submitted material to this Site's cloud service; platform policies still apply. Material is rendered with textContent. Blob/objectURL creates local JSON/TXT downloads; denied clipboard access selects complete JSON for system copying. No public material-bearing file or URL is created.
Protocol and limits
The website uses protocol 2026-07-28, mcp-protocol-version/mcp-method/mcp-name headers, and params._meta containing io.modelcontextprotocol/protocolVersion and io.modelcontextprotocol/clientCapabilities. Backend legacy support remains; no new plugin identity is created.
100,000 UTF-16 units per text; 3,000 per quotation/purpose; 20 quotation pairs; 2 MiB for the complete UTF-8 JSON request. Validation also limits the JSON string to 1,800,000 UTF-16 units, and its enclosing request must still fit 2 MiB.
Valid processing output can exceed validation limits because of JSON escaping or location data. The interface then explicitly allows a complete download but warns that this service cannot revalidate that package. It never truncates, repairs or silently rewrites it. The import field preserves pasted text and rejects oversized requests before sending.
S2_LOCAL_HANDOFF_V1 is unchanged. SHA-256 checks internal consistency, not signatures or author authenticity. A fully rewritten and rehashed package can remain consistent; retain a trusted original separately.
Original ChatGPT plugin (separate Site; unchanged here)
Original SL2 project_id=[private project ID omitted]; origin=[private origin omitted]. Its root POST /mcp differs from Tianxin's /sl2/mcp. The original engineering baseline permits exact ChatGPT and original-Site Origins; that is not Tianxin's policy.
The original plugin tools are sl2_get_info, sl2_compare_texts, sl2_validate_handoff and sl2_open_workbench. ui://sl2/workbench/v0.2.3.html and the 0.2.2/0.2.1 aliases belong to the original host UI. The reused backend retains these names/resources; the Tianxin website does not depend on the widget and does not register another plugin. Original core source and widget are byte-preserved; generated ESM removes only the unused CommonJS export branch, without algorithm changes.
Evidence boundary
Local builds, routes, actual downloaded file contents and browser viewports are testable. Real sign-in, strangers, physical phones/tablets and public deployment require separate confirmation. Existing passing regressions do not rule out new counterexamples. Saving a version is not publication.
Contact: wingyanshen@gmail.com