domain-skills: manus + perplexity — task workflows#179
domain-skills: manus + perplexity — task workflows#179muqsitnawaz wants to merge 4 commits intobrowser-use:mainfrom
Conversation
- manus/tasks.md: Connect RPC endpoints at api.manus.im, TipTap composer,
task URL pattern /app/<id>, share URL pattern /share/<id>, task-completion
selectors, share popover + copy-link flow (execCommand path).
- perplexity/computer.md: dashboard vs detail URLs under /computer/tasks,
Lexical composer with [data-ask-input-container] + [data-lexical-editor]
markers, ARIA grid task list (role=row / role=cell), Todo + Usage panels,
tool-invocation rows (group/tool-wrapper), artifact URLs (pplx-res
Cloudinary vs presigned CloudFront), share popover with
data-testid=access-level-{private,specific-people,public} and the
?view=thread share URL pattern.
✅ Skill review passedReviewed 2 file(s) — no findings. |
There was a problem hiding this comment.
2 issues found across 2 files
Prompt for AI agents (unresolved issues)
Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.
<file name="domain-skills/manus/tasks.md">
<violation number="1" location="domain-skills/manus/tasks.md:16">
P2: Connect protocol description is inaccurate/contradictory: it claims `application/json` requests are binary-encoded, but example and Connect docs indicate JSON payloads for unary JSON codec.</violation>
</file>
<file name="domain-skills/perplexity/computer.md">
<violation number="1" location="domain-skills/perplexity/computer.md:153">
P2: Todo completion detection uses a global icon query instead of scoping to the Todo panel, which can produce incorrect completion state.</violation>
</file>
Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review, or fix all with cubic.
manus/tasks.md
- Correct the Connect RPC transport description: the JS client wraps the
JSON payload in a Uint8Array before fetch, so a naive fetch-hook logs
it as <<bytes:N>> — the wire content matches content-type (JSON both
ways), not a separate binary codec.
- Replace the raw click(750, 505) example with a computed rect from
div.ProseMirror[contenteditable="true"] (SKILL.md: no pixel coords).
- Drop the specific-task prompt example ('reply with just the word PONG'
→ 'Reply with PONG') for a generic description of the auto-summary.
- Remove a real taskId from the URL-pattern docstring.
perplexity/computer.md
- Scope Todo-panel queries to the Radix popover. The Todo button has
data-state / aria-expanded / aria-controls; the open panel is mounted
with id === button.aria-controls. A global 'svg use' query across the
whole document picks up tool-invocation icons, sidebar icons, and top-
bar icons — scope-less completion detection is unreliable.
- Rewrite all_todo_done() to return None when the panel is closed or
hydrating and True only when every row's icon is #pplx-icon-check.
- Remove a real slug and taskId from the URL-pattern docstring.
|
Thanks — both are fair. Pushed 253887b:
The same commit also cleans up three SKILL.md violations I missed in the first push (one raw click coord, one run-narration example, two real taskIds in the URL-pattern docstrings). |
There was a problem hiding this comment.
3 issues found across 2 files (changes from recent commits).
Prompt for AI agents (unresolved issues)
Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.
<file name="domain-skills/manus/tasks.md">
<violation number="1" location="domain-skills/manus/tasks.md:59">
P2: DOM-submit example dereferences a possibly missing editor element without a null guard or retry, so the helper can throw and block task submission.</violation>
</file>
<file name="domain-skills/perplexity/computer.md">
<violation number="1" location="domain-skills/perplexity/computer.md:13">
P2: ID extraction guidance is incorrect/ambiguous and can produce wrong task IDs (especially when query params are present).</violation>
<violation number="2" location="domain-skills/perplexity/computer.md:175">
P3: Documentation contradicts the helper implementation: hydration returns `false`, not `None`.</violation>
</file>
Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review, or fix all with cubic.
- manus/tasks.md: ProseMirror composer can mount late; wrap the getBoundingClientRect lookup in a bounded retry + assertion so the helper doesn't null-deref and block submission. - perplexity/computer.md: id extraction must parse the URL pathname before slicing — raw-href slicing corrupts when the URL carries ?view=thread or a hash fragment. - perplexity/computer.md: all_todo_done() returned false on hydrate while the doc claimed None; unify on None so "can't tell" states (closed panel, empty panel) are distinguishable from "done=false".
|
Round 2 — pushed 01fdbd7. All three are fair:
|
There was a problem hiding this comment.
1 issue found across 2 files (changes from recent commits).
Prompt for AI agents (unresolved issues)
Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.
<file name="domain-skills/perplexity/computer.md">
<violation number="1" location="domain-skills/perplexity/computer.md:15">
P2: ID extraction examples are brittle: they return an empty ID when the task URL has a trailing slash.</violation>
</file>
Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review, or fix all with cubic.
|
Pushed one more — trailing-slash handling in the id-extraction snippet (JS |
Adds two new domain skills for long-running agent products.
manus/tasks.md
/app/<taskId>for a run,/share/<taskId>for a public link (same 22-char id).api.manus.im, pattern/<package>.v<N>.<Service>/<Method>. Lists the services + methods observed on the wire (SessionService/{ListSessions,GetSession,ShareSession,UpdateReadPosition}, etc.).div.ProseMirror[contenteditable="true"]) —.valuesetting does nothing, placeholder lives on the inner<p>viadata-placeholder.type_text()+ Enter / send-button click; the submit button is disabled while the editor is empty.Task completed; response body lives in a Shiki-rendered markdown block.SessionService/ShareSession, popover uses Floating UI portal. The Copy-link button writes viadocument.execCommand('copy')rather thannavigator.clipboard.writeText— the share URL ishttps://manus.im/share/<taskId>, derivable from the path.perplexity/computer.md
/computer/tasksdashboard,/computer/tasks/<slug>-<id>detail, same URL +?view=threadfor public share (no separate/sharepath).__NEXT_DATA__is null on detail pages and there are no visibleapi.perplexity.aifetches on page load — task state hydrates via streaming RSC.wss://suggest.perplexity.ai/suggest/wsis typeahead only, not the task stream.[data-ask-input-container]+[data-lexical-editor="true"]) — distinct from Manus. Same contenteditable caveats.div[role="row"]/div[role="cell"]), rows are clickable but not<a>.group/tool-wrapper, the Todo panel is a floating popover with plan items, LM-rendered markdown blocks carrydata-renderer="lm".pplx-res.cloudinary.com, presigned (expiring) URLs on CloudFront — archive via Cloudinary when possible.data-testid="access-level-{private,specific-people,public}"hooks; Copy Link button usesnavigator.clipboard.writeText(notexecCommand).Process notes
browser-harnessend-to-end (Manus task submitted and completed + shared; Perplexity Computer dashboard, an existing completed task, and the share popover were explored).Summary by cubic
Adds two domain skills for Manus and Perplexity Computer to run long tasks end-to-end with durable, coordinate-free selectors and stable URL/ID patterns. Improves robustness for editor mounting, ID parsing (including trailing slashes), and completion detection.
New Features
api.manus.imConnect RPC map; TipTap composer selectors;/app/<taskId>and/share/<taskId>; completion via “Task completed”; Share popover copies viadocument.execCommand('copy')./computer/tasksdashboard and/computer/tasks/<slug>-<id>detail; Lexical composer; ARIArole="row"/"cell"task list; tool steps viagroup/tool-wrapper; LM blocksdata-renderer="lm"; artifacts on Cloudinary vs presigned CloudFront; share is?view=threadusingnavigator.clipboard.writeTextwithdata-testidprivacy controls.Refinements
Uint8Array, but on-the-wire content is JSON.?view=thread/hash corruption.aria-controls;all_todo_done()returns None when closed/hydrating and True only when all icons are#pplx-icon-check.Written for commit 106075e. Summary will update on new commits.