Create a two-page incident response runbook at /home/user/Documents/runbook.drawio. Page 1 (Detection): 5 shapes labeled Alert Received, Triage, Severity Check, Low, High. Connect: Alert Received->Triage->Severity Check->Low, Severity Check->High, Low->Triage (loop). Page 2 (Response): 6 shapes labeled Contain, Eradicate, Recover, Root Cause, Document, Close. Save the file.

Diagram file exists

Exactly 2 pages

check-vertex-count /home/user/Documents/runbook.drawio 5 0

Page 0 has exactly 5 vertices

check-vertex-count /home/user/Documents/runbook.drawio 6 1

Page 1 has exactly 6 vertices

check-label-exists /home/user/Documents/runbook.drawio "Alert Received"

Alert Received label exists

Triage label exists

check-label-exists /home/user/Documents/runbook.drawio "Severity Check"

Severity Check label exists

Low label exists

High label exists

Contain label exists

Eradicate label exists

Recover label exists

check-label-exists /home/user/Documents/runbook.drawio "Root Cause"

Root Cause label exists

Document label exists

Close label exists

Page 0 has at least 5 edges

[p.get('name') for p in result] == ['Detection','Response']

Page names are Detection and Response in order


Create a Kubernetes cluster architecture at /home/user/Documents/k8s_cluster.drawio. Create 12 shapes: Control Plane, Ingress, Worker1, Worker2, Worker3, Pod1-6, ServiceMesh. Connect hierarchically: Control Plane to each Worker, each Worker to 2 Pods (Worker1->Pod1/2, Worker2->Pod3/4, Worker3->Pod5/6), Ingress to Control Plane. The diagram must have 12 vertices and at least 9 edges. Save the file.

Diagram file exists

check-vertex-count /home/user/Documents/k8s_cluster.drawio 12 0

Exactly 12 vertices

check-label-exists /home/user/Documents/k8s_cluster.drawio "Control Plane"

Control Plane label exists

Ingress label exists

Worker1 label exists

Worker2 label exists

Worker3 label exists

Pod1 label exists

Pod2 label exists

Pod3 label exists

Pod4 label exists

Pod5 label exists

Pod6 label exists

ServiceMesh label exists

At least 9 edges on page 0

Prompt: Using the connections list (source/target IDs) and the vertices list (IDs to labels), verify that Control Plane has connecting edges to ALL THREE workers: Worker1, Worker2, and Worker3. Edges may go in either direction. Answer yes only if all three connections exist.

Control Plane connects to all 3 workers


Create a 4-page microservices diagram at /home/user/Documents/microservices.drawio. Rename pages to: Overview, Services, Data, Deployment. Page 1 (Overview): Client, Gateway, Backend connected sequentially (2 edges). Page 2 (Services): 4 shapes labeled UserService, OrderService, PaymentService, NotificationService. Page 3 (Data): 3 shapes labeled UsersDB, OrdersDB, Cache. Page 4 (Deployment): Kubernetes and Monitoring. Save the file.

Diagram file exists

Exactly 4 pages

check-vertex-count /home/user/Documents/microservices.drawio 3 0

Page 0 (Overview) has exactly 3 vertices

check-vertex-count /home/user/Documents/microservices.drawio 4 1

Page 1 (Services) has exactly 4 vertices

check-vertex-count /home/user/Documents/microservices.drawio 3 2

Page 2 (Data) has exactly 3 vertices

check-vertex-count /home/user/Documents/microservices.drawio 2 3

Page 3 (Deployment) has exactly 2 vertices

Client label exists

Gateway label exists

Backend label exists

UserService label exists

OrderService label exists

PaymentService label exists

NotificationService label exists

UsersDB label exists

OrdersDB label exists

Cache label exists

Kubernetes label exists

Monitoring label exists

[p.get('name') for p in result] == ['Overview','Services','Data','Deployment']

Page names in order: Overview, Services, Data, Deployment


Create a network topology diagram at /home/user/Documents/network_topology.drawio. Create 6 shapes labeled: Internet (cloud), Firewall, Switch, Web Server, App Server, Database Server. Connect sequentially: Internet->Firewall->Switch, then Switch to each server. The diagram must have 6 vertices and 5 edges. Save the file.

Diagram file exists at expected path

Shape 'Internet' exists

Shape 'Firewall' exists

Shape 'Switch' exists

check-label-exists /home/user/Documents/network_topology.drawio "Web Server"

Shape 'Web Server' exists

check-label-exists /home/user/Documents/network_topology.drawio "App Server"

Shape 'App Server' exists

check-label-exists /home/user/Documents/network_topology.drawio "Database Server"

Shape 'Database Server' exists

Exactly 6 vertex shapes

Exactly 5 edges (hierarchical connections)


Modify the ER diagram at /home/user/Documents/erd.drawio. The file contains 5 rectangles: Customer (id 2), Product (id 3), Order (id 4), Category (id 5), AuditLog (id 6). Change fills: Customer and Order to #dae8fc (blue), Product and Category to #fff2cc (yellow), AuditLog to #f8cecc (red). Add rectangles labeled OrderItem and Payment. Connect Order->OrderItem and Order->Payment. Final diagram must have 7 vertices. Save the file.

Diagram file exists

check-vertex-count /home/user/Documents/erd.drawio 7 0

Exactly 7 vertices after edits

Customer label remains

Product label remains

Order label remains

Category label remains

AuditLog label remains

OrderItem added

Payment added

check-style-property /home/user/Documents/erd.drawio 2 fillColor "#dae8fc"

Customer (id 2) is blue #dae8fc

check-style-property /home/user/Documents/erd.drawio 3 fillColor "#fff2cc"

Product (id 3) is yellow #fff2cc

check-style-property /home/user/Documents/erd.drawio 4 fillColor "#dae8fc"

Order (id 4) is blue #dae8fc

check-style-property /home/user/Documents/erd.drawio 5 fillColor "#fff2cc"

Category (id 5) is yellow #fff2cc

check-style-property /home/user/Documents/erd.drawio 6 fillColor "#f8cecc"

AuditLog (id 6) is red #f8cecc

Prompt: Using the connections list and the vertices list, verify that the diagram contains an edge from 'Order' to 'OrderItem' and another edge from 'Order' to 'Payment'. Both edges must exist. Answer yes only if both are present.

Order->OrderItem and Order->Payment edges exist


Create an order lifecycle state machine at /home/user/Documents/state_machine.drawio. Create 5 rounded rectangles labeled: New, Confirmed, Shipped, Delivered, Cancelled. Add transitions: New->Confirmed, Confirmed->Shipped, Shipped->Delivered, New->Cancelled, Confirmed->Cancelled. The diagram must have 5 vertices and 5 edges. Save the file.

Diagram file exists at expected path

State 'New' exists

State 'Confirmed' exists

State 'Shipped' exists

State 'Delivered' exists

State 'Cancelled' exists

Exactly 5 state shapes

Exactly 5 transition edges


Create a data pipeline at /home/user/Documents/data_pipeline.drawio. Create 6 shapes: Source (ellipse), Extract (rectangle), Transform (rectangle), Validate (diamond), Load (rectangle), Warehouse (cylinder). Apply fills: Source #e1d5e7 (purple), Validate #fff2cc (yellow), Warehouse #d5e8d4 (green). Connect sequentially: Source->Extract->Transform->Validate->Load->Warehouse. The diagram must have 6 vertices and 5 edges. Save the file.

Diagram file exists

check-vertex-count /home/user/Documents/data_pipeline.drawio 6 0

Exactly 6 vertices

check-edge-count /home/user/Documents/data_pipeline.drawio 5 0

Exactly 5 edges

Source label exists

Extract label exists

Transform label exists

Validate label exists

Load label exists

Warehouse label exists

Prompt: Inspect the vertices list. Does the vertex labeled 'Source' have fillColor=#e1d5e7 in its style, the vertex labeled 'Validate' have fillColor=#fff2cc, and the vertex labeled 'Warehouse' have fillColor=#d5e8d4? All three must match.

Source/Validate/Warehouse have correct fill colors

Prompt: Using the connections and vertices lists, verify the diagram contains an edge whose source label is 'Source' and target label is 'Extract'.

Connection Source -> Extract exists


Create an order fulfillment process at /home/user/Documents/swimlane_process.drawio. Create 3 header rectangles: Customer, Sales, Warehouse. Create 6 activity rectangles: Place Order, Verify Stock, Approve Sale, Pick Items, Pack Items, Ship Order. Connect sequentially: Place Order->Verify Stock->Approve Sale->Pick Items->Pack Items->Ship Order. The diagram must have at least 9 vertices and 5 edges. Save the file.

Diagram file exists

Customer header exists

Sales header exists

Warehouse header exists

check-label-exists /home/user/Documents/swimlane_process.drawio "Place Order"

Place Order activity exists

check-label-exists /home/user/Documents/swimlane_process.drawio "Verify Stock"

Verify Stock activity exists

check-label-exists /home/user/Documents/swimlane_process.drawio "Approve Sale"

Approve Sale activity exists

check-label-exists /home/user/Documents/swimlane_process.drawio "Pick Items"

Pick Items activity exists

check-label-exists /home/user/Documents/swimlane_process.drawio "Pack Items"

Pack Items activity exists

check-label-exists /home/user/Documents/swimlane_process.drawio "Ship Order"

Ship Order activity exists

At least 9 vertices on page 0

At least 5 edges on page 0

Prompt: Inspect the connections list (edges with source/target IDs) and the vertices list. Does the diagram contain an edge whose source vertex label is 'Place Order' and whose target vertex label is 'Verify Stock'?

Connection Place Order -> Verify Stock exists


Create a class diagram at /home/user/Documents/uml_classes.drawio. Create 3 shapes labeled: Animal, Dog, Cat. Connect them: Dog->Animal, Cat->Animal, Dog->Cat. The diagram must have 3 vertices and 3 edges. Save the file.

Diagram file exists at expected path

Shape labeled 'Animal' exists

Shape labeled 'Dog' exists

Shape labeled 'Cat' exists

Exactly 3 vertex shapes (Animal, Dog, Cat)

Exactly 3 edges


Add a Part::Sphere object to the document at /home/user/Documents/shapes.FCStd. Set its Radius to 15 mm and change its Label to 'Planet'. Preserve the existing Part::Box object named 'Box'. Save the file.

File exists

Original Box still exists

Sphere object exists

check-object-type /home/user/Documents/shapes.FCStd Sphere Part::Sphere

Sphere is Part::Sphere

check-parameter-value /home/user/Documents/shapes.FCStd Sphere Radius 15

Sphere Radius == 15

check-label /home/user/Documents/shapes.FCStd Sphere Planet

Sphere Label == 'Planet'


Perform a Boolean Cut operation on the document at /home/user/Documents/bolted.FCStd. Use the existing Part::Box named 'Box' as the base object and the Part::Cylinder named 'Cylinder' as the tool object. Save the file.

File exists

Cut object exists

check-object-type /home/user/Documents/bolted.FCStd Cut Part::Cut

Cut object is of type Part::Cut

check-object-type-count /home/user/Documents/bolted.FCStd Part::Cut 1

Exactly one Part::Cut object


Change FreeCAD's unit system to 'Imperial decimal (in, in/s^2)' which corresponds to UserSchema=3. Apply this setting to the user configuration.

User unit schema set to 3 (Imperial decimal)


Create a Part::Compound object in the document at /home/user/Documents/assembly.FCStd that groups the three existing primitives: Part::Box named 'Box', Part::Cylinder named 'Cylinder', and Part::Cone named 'Cone'. Set the Compound's Label to 'AssemblyGroup'. All three primitives must remain in the document. Save the file.

File exists

Box still exists

Cylinder still exists

Cone still exists

check-object-type-count /home/user/Documents/assembly.FCStd Part::Compound 1

Exactly one Part::Compound

Document has exactly 4 objects

Prompt: Does the FreeCAD document contain exactly one object whose type is 'Part::Compound' AND whose Label property equals 'AssemblyGroup'? Answer yes only if both conditions are true.

Compound labelled 'AssemblyGroup'


Create a Part::Box object in the document at /home/user/Documents/part.FCStd. Set its dimensions to Length=40 mm, Width=30 mm, Height=20 mm. Set its Label to 'MainBlock'. Save the file.

File saved at expected path

check-object-type-count /home/user/Documents/part.FCStd Part::Box 1

Exactly one Part::Box object exists

check-parameter-value /home/user/Documents/part.FCStd Box Length 40

Box Length == 40

check-parameter-value /home/user/Documents/part.FCStd Box Width 30

Box Width == 30

check-parameter-value /home/user/Documents/part.FCStd Box Height 20

Box Height == 20

check-label /home/user/Documents/part.FCStd Box MainBlock

Box Label == 'MainBlock'


Set multiple metadata fields for the document at /home/user/Documents/report.FCStd. Set Comment='Revision A release candidate', Company='Acme Robotics', CreatedBy='Jordan Lee', and License='CC-BY-4.0'. Save the file.

File exists

check-document-property /home/user/Documents/report.FCStd Comment 'Revision A release candidate'

Document Comment set

check-document-property /home/user/Documents/report.FCStd Company 'Acme Robotics'

Document Company set

check-document-property /home/user/Documents/report.FCStd CreatedBy 'Jordan Lee'

Document CreatedBy set

check-document-property /home/user/Documents/report.FCStd License CC-BY-4.0

Document License set


Export the Part::Cylinder object named 'Cylinder' from /home/user/Documents/pipe.FCStd to a STEP file at /home/user/exports/pipe.step.

STEP file was written

STEP file has ISO-10303-21 header and entities

FCStd source still exists


Export the Part::Box object named 'Box' from /home/user/Documents/widget.FCStd to three formats: STL at /home/user/exports/box.stl, STEP at /home/user/exports/box.step, and OBJ at /home/user/exports/box.obj.

FCStd source still exists

STL export exists

STL has >= 12 triangles (closed box has 12)

STEP export exists

STEP file is valid

OBJ export exists

OBJ has >= 8 vertices (a box has 8 corners)


Perform a Boolean Fuse operation on the document at /home/user/Documents/twin.FCStd. Fuse the two existing Part::Box objects named 'Box' and 'Box001' together. Set the resulting Part::Fuse object's Label to 'MergedFrame'. Both original boxes must remain in the document. Save the file.

File exists

Original Box still exists

Original Box001 still exists

check-object-type-count /home/user/Documents/twin.FCStd Part::Fuse 1

Exactly one Part::Fuse

check-object-type-count /home/user/Documents/twin.FCStd Part::Box 2

Still exactly two Part::Box

Document has exactly 3 objects total

Prompt: Does the FreeCAD document contain exactly one object whose type is 'Part::Fuse' AND whose Label property is exactly 'MergedFrame'? Answer yes only if both conditions are true.

Fuse object is labelled 'MergedFrame'


FreeCAD is open with /home/user/Documents/draft_start.FCStd (empty document). Switch to the Draft workbench. Create a closed Draft Wire named exactly 'HexPath' whose 6 vertices form a regular hexagon on the XY plane, centered at the origin, with circumradius 50 mm (the first vertex at (50, 0, 0); vertices spaced 60 degrees apart). Then create a Draft Circle named exactly 'CenterHole' on the XY plane, centered at the origin, with radius 15 mm. Save the file.

File exists

HexPath exists

check-parameter-value /home/user/Documents/draft_start.FCStd HexPath Closed true

HexPath is closed

CenterHole exists

check-parameter-value /home/user/Documents/draft_start.FCStd CenterHole Radius 15

CenterHole Radius = 15


FreeCAD is open with /home/user/Documents/fem_start.FCStd. The document contains a Part::Box named 'Beam' (200 x 20 x 10 mm). Switch to the FEM workbench. Create an FEM mesh for the Beam (default parameters, tetrahedronron, element length 5 mm). Apply a fixed constraint to one end face. Apply a force of 1000 N downward on the other end. Run the analysis and check the displacement. Save the file.

File exists

Beam preserved

Analysis container exists

check-object-type /home/user/Documents/fem_start.FCStd Analysis Fem::FemAnalysis

Analysis is Fem::FemAnalysis

check-object-type-count /home/user/Documents/fem_start.FCStd Fem::ConstraintFixed 1

Exactly one fixed constraint

check-object-type-count /home/user/Documents/fem_start.FCStd Fem::ConstraintForce 1

Exactly one force constraint

check-object-type-count /home/user/Documents/fem_start.FCStd Fem::MaterialSolid 1

Exactly one solid material

check-object-type-count /home/user/Documents/fem_start.FCStd Fem::FemMeshGmsh 1

Exactly one Gmsh mesh


FreeCAD is open with /home/user/Documents/disk_start.FCStd. The document contains a PartDesign Body 'DiskBody' with a circular Pad 'Lug1' (10 mm diameter, 5 mm high) at position (30, 0, 0). Switch to the PartDesign workbench. Make the Body active. Create a circular polar pattern of 'Lug1': 6 instances, angle=360°, axis=Z axis. The pattern should create 6 evenly-spaced lugs around the disk. Save the file.

File exists

Disk preserved

Lug pad exists

check-object-type /home/user/Documents/disk_start.FCStd Lug PartDesign::Pad

Lug is PartDesign::Pad

check-parameter-value /home/user/Documents/disk_start.FCStd Lug Length 5

Lug Length = 5

LugPattern exists

check-object-type /home/user/Documents/disk_start.FCStd LugPattern PartDesign::PolarPattern

LugPattern is PartDesign::PolarPattern

check-parameter-value /home/user/Documents/disk_start.FCStd LugPattern Occurrences 6

Occurrences = 6

check-parameter-value /home/user/Documents/disk_start.FCStd LugPattern Angle 360

Angle = 360


FreeCAD is open with /home/user/Documents/bracket_start.FCStd (empty document). Switch to the PartDesign workbench and create a new Body named exactly 'BracketBody'. Inside the Body, create a Sketch on the XY plane containing a closed L-shaped profile: the L has an overall bounding rectangle of 60 mm (X) by 40 mm (Y), with a leg thickness of 10 mm — so the profile has 6 corners forming an L. Then create a Pad from this sketch with Length = 30 mm and Midplane enabled so the pad extrudes symmetrically along Z. Rename the Pad to exactly 'LBracket'. Save the file.

File exists

BracketBody exists

check-object-type /home/user/Documents/bracket_start.FCStd BracketBody PartDesign::Body

BracketBody is a PartDesign::Body

LBracket Pad exists

check-object-type /home/user/Documents/bracket_start.FCStd LBracket PartDesign::Pad

LBracket is a PartDesign::Pad

check-parameter-value /home/user/Documents/bracket_start.FCStd LBracket Length 30

Pad Length = 30

check-parameter-value /home/user/Documents/bracket_start.FCStd LBracket Midplane true

Pad Midplane enabled

check-object-type-count /home/user/Documents/bracket_start.FCStd Sketcher::SketchObject 1

Exactly one Sketch in document


FreeCAD is open with /home/user/Documents/plate_start.FCStd. The document already contains a PartDesign Body named 'PlateBody' with a 50x50x5 mm Plate at (0,0,0). Switch to the PartDesign workbench. Make the Body active. Attach a new Sketch to the top face of the Plate. Draw a 20x20 mm rectangle centered on the face. Create a Pocket feature from this sketch with depth=3 mm and Type='Through'. Save the file.

File exists

PlateBody preserved

BasePlate preserved

CenterPocket exists

check-object-type /home/user/Documents/plate_start.FCStd CenterPocket PartDesign::Pocket

CenterPocket is a PartDesign::Pocket

check-parameter-value /home/user/Documents/plate_start.FCStd CenterPocket Length 5

Pocket Length = 5


FreeCAD is open with /home/user/Documents/bottle_start.FCStd (empty document). In the PartDesign workbench, create a Body named 'BottleBody'. Create a Sketch on the XY plane. Draw a profile of a bottle (outline only, not filled) using lines and arcs. The profile should be 50 mm tall and 20 mm wide at its widest. Then, create a Revolve from the sketch using a 360-degree rotation around the vertical axis. Save the file.

File exists

BottleBody exists

check-object-type /home/user/Documents/bottle_start.FCStd BottleBody PartDesign::Body

BottleBody is a PartDesign::Body

Bottle revolution exists

check-object-type /home/user/Documents/bottle_start.FCStd Bottle PartDesign::Revolution

Bottle is a PartDesign::Revolution

check-parameter-value /home/user/Documents/bottle_start.FCStd Bottle Angle 360

Revolution Angle = 360

check-object-type-count /home/user/Documents/bottle_start.FCStd Sketcher::SketchObject 1

Exactly one Sketch in document


FreeCAD is open with /home/user/Documents/path_start.FCStd. The document contains a Part::Box named 'Stock' (80 x 60 x 10 mm). Switch to the Path (CAM) workbench. Create a new Path Job. Add the 'Stock' object to the job. Generate a toolpath for a profile operation: tool diameter=3 mm, feed rate=600 mm/min, depth of cut=10 mm. Save the file.

File exists

Stock preserved

CNCJob exists

check-object-type /home/user/Documents/path_start.FCStd CNCJob Path::FeatureCompoundPython

CNCJob is a Path Job (Path::FeatureCompoundPython)

TC_EndMill6 tool controller exists

ProfileOp operation exists


FreeCAD is open with /home/user/Documents/sketch_start.FCStd (empty document). Switch to the Sketcher workbench, create a new sketch attached to the XY plane, and draw a rectangle centered on the origin that is exactly 80 mm wide (along X) and 50 mm tall (along Y). Add geometric constraints so the rectangle is fully constrained: horizontal constraints on the top/bottom edges, vertical constraints on the left/right edges, and a symmetry constraint that places the centroid of the rectangle exactly on the origin. Add two dimensional constraints: a horizontal distance constraint of 80 mm and a vertical distance constraint of 50 mm. Rename the sketch to 'MainSketch'. Save the file.

File exists

MainSketch exists

check-object-type /home/user/Documents/sketch_start.FCStd MainSketch Sketcher::SketchObject

MainSketch is a Sketcher::SketchObject

check-label /home/user/Documents/sketch_start.FCStd MainSketch MainSketch

Label is 'MainSketch'


Create a Spreadsheet object named 'Params' in /home/user/Documents/spreadsheet_start.FCStd. Set cell B1=100 with alias 'length', B2=50 with alias 'width', B3=20 with alias 'height'. Create a Part::Box named 'DrivenBox' and bind its Length, Width, and Height properties to the spreadsheet values via expressions. Save the file.

File exists

Params sheet exists

check-object-type /home/user/Documents/spreadsheet_start.FCStd Params Spreadsheet::Sheet

Params is Spreadsheet::Sheet

DrivenBox exists

check-object-type /home/user/Documents/spreadsheet_start.FCStd DrivenBox Part::Box

DrivenBox is Part::Box

check-parameter-value /home/user/Documents/spreadsheet_start.FCStd DrivenBox Length 100

Length evaluates to 100

check-parameter-value /home/user/Documents/spreadsheet_start.FCStd DrivenBox Width 50

Width evaluates to 50

check-parameter-value /home/user/Documents/spreadsheet_start.FCStd DrivenBox Height 20

Height evaluates to 20


FreeCAD is open with /home/user/Documents/techdraw_start.FCStd. The document already contains a Part::Box named 'Block' (60 x 40 x 20 mm). Switch to the TechDraw workbench. Create a new drawing Page using the A4 landscape template, and rename the page to exactly 'DrawingPage'. Add two orthographic views of 'Block' on that page: a front view named exactly 'FrontView' (projecting along +Y, so the 60x20 face is visible) and a top view named exactly 'TopView' (projecting along +Z, so the 60x40 face is visible). Both views at scale 1:1. Add a linear length dimension attached to the front view that measures the 60 mm horizontal width of Block. Save the file.

File exists

Block preserved

DrawingPage exists

check-object-type /home/user/Documents/techdraw_start.FCStd DrawingPage TechDraw::DrawPage

DrawingPage is TechDraw::DrawPage

FrontView exists

check-object-type /home/user/Documents/techdraw_start.FCStd FrontView TechDraw::DrawViewPart

FrontView is DrawViewPart

TopView exists

check-object-type /home/user/Documents/techdraw_start.FCStd TopView TechDraw::DrawViewPart

TopView is DrawViewPart

check-object-type-count /home/user/Documents/techdraw_start.FCStd TechDraw::DrawViewDimension 1

Exactly one DrawViewDimension


Modify the existing Part::Cylinder object named 'Cylinder' in /home/user/Documents/cylinder.FCStd. Change its Radius to 12 and its Height to 50. Then change the object's Label to exactly 'TallPipe'. Save the file.

File exists

Cylinder object exists

check-parameter-value /home/user/Documents/cylinder.FCStd Cylinder Radius 12

Cylinder Radius == 12

check-parameter-value /home/user/Documents/cylinder.FCStd Cylinder Height 50

Cylinder Height == 50

check-label /home/user/Documents/cylinder.FCStd Cylinder TallPipe

Cylinder Label == 'TallPipe'


In /home/user/Documents/chain.FCStd which contains a Part::Box named 'Box' (20x20x20), a Part::Cylinder named 'Cylinder' (Radius 5, Height 40), and a Part::Sphere named 'Sphere' (Radius 12), perform a multi-step Boolean operation chain. First, create a Part::Fuse by combining Box and Sphere. Then create a Part::Cut by cutting the newly created Fusion with Cylinder. The final document must contain 5 objects in total: the original Box, Cylinder, Sphere, plus 1 Part::Fuse and 1 Part::Cut. Save the file.

File exists

Original Box still exists

Original Cylinder still exists

Original Sphere still exists

Document has exactly 5 objects

check-object-type-count /home/user/Documents/chain.FCStd Part::Fuse 1

Exactly one Part::Fuse

check-object-type-count /home/user/Documents/chain.FCStd Part::Cut 1

Exactly one Part::Cut


Configure multiple FreeCAD preferences in ~/.config/FreeCAD/user.cfg: (1) Set the Theme to exactly 'Dark', (2) Ensure auto-save is enabled and set its interval to 180 seconds, (3) Set the User system to 'Imperial from SI (in, in/s^2)' which corresponds to schema index 2.

Theme set to Dark

Auto-save enabled

Auto-save interval == 180

Units schema set to 2 (Imperial from SI)


FreeCAD is open with /home/user/Documents/parts_catalog.FCStd. The document contains four primitive objects whose internal names are 'Box', 'Cylinder', 'Sphere', and 'Cone'. Do not change the internal names, but update the Label property of each object so that the labels are exactly: Box -> 'BaseFrame', Cylinder -> 'AxleShaft', Sphere -> 'BallJoint', Cone -> 'Nozzle'. Leave the object count unchanged at 4. Save the file so the changes are written back to /home/user/Documents/parts_catalog.FCStd.

File exists

Document still has exactly 4 objects

Box still exists

Cylinder still exists

Sphere still exists

Cone still exists

check-label /home/user/Documents/parts_catalog.FCStd Box BaseFrame

Box Label == 'BaseFrame'

check-label /home/user/Documents/parts_catalog.FCStd Cylinder AxleShaft

Cylinder Label == 'AxleShaft'

check-label /home/user/Documents/parts_catalog.FCStd Sphere BallJoint

Sphere Label == 'BallJoint'

check-label /home/user/Documents/parts_catalog.FCStd Cone Nozzle

Cone Label == 'Nozzle'


Configure FreeCAD so that the theme is set to Dark and the auto-save interval is set to 120 seconds. Ensure the changes are saved to /home/user/.config/FreeCAD/user.cfg while preserving unrelated settings.

Theme set to Dark

AutoSaveInterval == 120


Export the Part::Sphere named 'Sphere' (Radius=30) from /home/user/Documents/ball.FCStd to an STL file at /home/user/exports/ball.stl. The resulting STL must have at least 200 triangles. Save the FCStd document after exporting.

FCStd source still exists

STL export exists

STL has >= 200 triangles


Create a Part::Torus object named 'Torus' in the document at /home/user/Documents/ring.FCStd. Set Radius1=35, Radius2=8, Angle1=-90, Angle2=90, Angle3=180. Set its Label to 'DonutSlice'. Save the file.

File exists

check-object-type-count /home/user/Documents/ring.FCStd Part::Torus 1

Exactly one Part::Torus object

check-parameter-value /home/user/Documents/ring.FCStd Torus Radius1 35

Torus Radius1 == 35

check-parameter-value /home/user/Documents/ring.FCStd Torus Radius2 8

Torus Radius2 == 8

check-parameter-value /home/user/Documents/ring.FCStd Torus Angle1 -90

Torus Angle1 == -90

check-parameter-value /home/user/Documents/ring.FCStd Torus Angle2 90

Torus Angle2 == 90

check-parameter-value /home/user/Documents/ring.FCStd Torus Angle3 180

Torus Angle3 == 180

check-label /home/user/Documents/ring.FCStd Torus DonutSlice

Torus Label == 'DonutSlice'


Open /home/user/Documents/icon_bg.png in GIMP. The image is 200x200 pixels with a solid white background and a red circle in the center (100px diameter). Add an alpha channel to the layer. Delete the white background to make it transparent. Export the result as /home/user/Documents/icon_transparent.png.

Exported transparent PNG file exists

Image has RGBA mode (alpha channel present)

check-file-dimensions /home/user/Documents/icon_transparent.png 200 200

Image dimensions are 200x200 pixels


Increase the brightness of /home/user/Documents/dark_photo.png by +40, +60, and +80. Export three brightened images to /home/user/Documents/bright_photo1.png (+40 brightness), bright_photo2.png (+60 brightness), and bright_photo3.png (+80 brightness).

bright_photo1.png exists (+40 brightness)

bright_photo2.png exists (+60 brightness)

bright_photo3.png exists (+80 brightness)

bright_photo1.png is PNG format

bright_photo2.png is PNG format

bright_photo3.png is PNG format

check-pixel-color-file /home/user/Documents/bright_photo1.png 200 150 70 70 70 25

bright_photo1.png center pixel ~70 (brightness +40)

check-pixel-color-file /home/user/Documents/bright_photo2.png 200 150 90 90 90 25

bright_photo2.png center pixel ~90 (brightness +60)

check-pixel-color-file /home/user/Documents/bright_photo3.png 200 150 110 110 110 25

bright_photo3.png center pixel ~110 (brightness +80)


Open the base image /home/user/Documents/landscape_base.png (800x600 — sky blue on top, green ground on bottom) in GIMP. Open /home/user/Documents/logo_overlay.png (100x100 solid red) as a new layer on top of the base image and position it so its top-left corner sits at offset (20, 20) on the base canvas. Flatten the image into a single layer and export the result as a PNG file to /home/user/Documents/composite_final.png. The final image must still be 800x600 pixels.

Output PNG exists

Output is PNG format

check-file-dimensions /home/user/Documents/composite_final.png 800 600

Output dimensions are 800x600

check-pixel-color-file /home/user/Documents/composite_final.png 70 70 255 0 0 15

Pixel (70,70) inside pasted logo region is red

check-pixel-color-file /home/user/Documents/composite_final.png 500 100 135 206 235 15

Pixel (500,100) in untouched sky area is sky blue

check-pixel-color-file /home/user/Documents/composite_final.png 500 500 34 139 34 15

Pixel (500,500) in untouched ground area is green


Crop the image to the top-left 400x300 region (starting at origin 0,0), rotate it 90 degrees clockwise, and export the result to /home/user/Documents/photo_cropped_rotated.png.

Output PNG file exists at /home/user/Documents/photo_cropped_rotated.png

check-file-dimensions /home/user/Documents/photo_cropped_rotated.png 300 400

Output image has dimensions 300x400 (400x300 crop rotated 90 degrees CW)

Output file is in PNG format


An image is available at: /home/user/Documents/transparent_black_square.png. Open it in GIMP. Replace all transparent pixels with solid cyan (RGB 0,255,255) and save the result as: /home/user/Documents/cyan_bg.png. Preserve all non-transparent pixels exactly and keep the image dimensions unchanged.

Output PNG exists

Output is PNG format

check-file-dimensions /home/user/Documents/cyan_bg.png 400 400

Output dimensions are 400x400

check-pixel-color-file /home/user/Documents/cyan_bg.png 10 10 0 255 255 15

Corner pixel is cyan (was transparent)

check-pixel-color-file /home/user/Documents/cyan_bg.png 200 200 0 0 0 15

Center pixel is still black (inside the square)

check-pixel-color-file /home/user/Documents/cyan_bg.png 350 350 0 255 255 15

Opposite corner pixel is cyan


Perform two separate flip operations on different images:

1. Flip /home/user/Documents/arrow.png horizontally and export the result to /home/user/Documents/flipped_horizontal.png.
2. Flip /home/user/Documents/red_top_green_bottom.png vertically and export the result to /home/user/Documents/flipped_vertical.jpg.

Horizontally flipped PNG exists

Vertically flipped JPEG exists

check-file-dimensions /home/user/Documents/flipped_horizontal.png 400 200

Horizontal flip dimensions are 400x200 pixels

check-file-dimensions /home/user/Documents/flipped_vertical.jpg 400 400

Vertical flip dimensions are 400x400 pixels

check-pixel-color-file /home/user/Documents/flipped_horizontal.png 50 100 0 255 0

Horizontal flip: left side pixel is green (was red before)

check-pixel-color-file /home/user/Documents/flipped_horizontal.png 350 100 255 0 0

Horizontal flip: right side pixel is red (was green before)

check-pixel-color-file /home/user/Documents/flipped_vertical.jpg 200 50 0 255 0 15

Vertical flip: top half (y=50) is now green (flipped from bottom)

check-pixel-color-file /home/user/Documents/flipped_vertical.jpg 200 350 255 0 0 15

Vertical flip: bottom half (y=350) is now red (flipped from top)


An image is available at: /home/user/Documents/silhouette.png. Open it in GIMP. Replace all white background pixels with transparency while preserving the black foreground shape unchanged. Save the result to: /home/user/Documents/cutout.png. The output must be a PNG image with an alpha channel.

Output PNG exists

Output is PNG

Output has RGBA (alpha channel preserved)

check-file-dimensions /home/user/Documents/cutout.png 300 300

Output is 300x300

pixel-color-file /home/user/Documents/cutout.png 10 10

Former white corner is now fully transparent

pixel-color-file /home/user/Documents/cutout.png 150 150

Center of black star remains opaque


Open /home/user/Documents/photo_base.png in GIMP, then add /home/user/Documents/texture_overlay.png as a new layer on top of it. Set the top (texture) layer's blend mode to Multiply and its opacity to 60%. Flatten the image and export the final composite as a PNG to /home/user/Documents/multiply_result.png. The output must be 512x512 pixels.

Output PNG exists

Output is PNG

check-file-dimensions /home/user/Documents/multiply_result.png 512 512

Output is 512x512

pixel-color-file /home/user/Documents/multiply_result.png 256 256

Center pixel shows blend effect (not pure yellow/white from base) — R and G channels darkened by multiply

Center pixel blue channel still affected by multiply (not 255, not raw overlay either)


Open /home/user/Documents/blue_bg.png in GIMP as the background layer. Add /home/user/Documents/red_fg.png as a new layer on top. Add a white layer mask to the red layer, then use the Gradient (Blend) tool to paint a left-to-right black-to-white linear gradient on that mask (black on the left edge, white on the right edge) so that the red fades into the blue across the image. Flatten and export the result as PNG to /home/user/Documents/mask_gradient.png. Output must be 400x300.

Output PNG exists

check-file-dimensions /home/user/Documents/mask_gradient.png 400 300

Output is 400x300

check-pixel-color-file /home/user/Documents/mask_gradient.png 5 150 0 0 255 20

Left edge reveals blue (mask fully hides red)

check-pixel-color-file /home/user/Documents/mask_gradient.png 395 150 255 0 0 20

Right edge shows red (mask fully reveals red)

pixel-color-file /home/user/Documents/mask_gradient.png 200 150

Midpoint is a blend of red and blue (not pure red or pure blue)


In GIMP, create a new 500x500 RGB image. Set the foreground color to pure red (#FF0000) and the background color to pure blue (#0000FF). Use the Gradient (Blend) tool with the 'FG to BG (RGB)' gradient in Linear shape to paint a top-to-bottom gradient that starts red at the top edge and ends blue at the bottom edge. Flatten and export as PNG to /home/user/Documents/gradient.png.

Output PNG exists

Output is PNG

check-file-dimensions /home/user/Documents/gradient.png 500 500

Output is 500x500

pixel-color-file /home/user/Documents/gradient.png 250 5

result.get('r',0) > 200 and result.get('b',255) < 60

Top row is predominantly red

pixel-color-file /home/user/Documents/gradient.png 250 495

result.get('b',0) > 200 and result.get('r',255) < 60

Bottom row is predominantly blue

pixel-color-file /home/user/Documents/gradient.png 250 250

Middle row is a mix of red and blue (blended)


Open /home/user/Documents/three_stripes.png (a 600x300 image with three vertical stripes — red, green, blue). Replace the green stripe with yellow(#FFFF00). Save the result as /home/user/Documents/color_replaced.png.

Output PNG exists

check-file-dimensions /home/user/Documents/color_replaced.png 600 300

Output is 600x300

check-pixel-color-file /home/user/Documents/color_replaced.png 100 150 255 0 0 10

Red stripe unchanged

check-pixel-color-file /home/user/Documents/color_replaced.png 300 150 255 255 0 10

Green stripe now yellow

check-pixel-color-file /home/user/Documents/color_replaced.png 500 150 0 0 255 10

Blue stripe unchanged


Convert /home/user/Documents/colorful.png to grayscale and export to /home/user/Documents/colorful_gray.png.

Output grayscale PNG file exists at /home/user/Documents/colorful_gray.png

Output image is in grayscale (L) mode

check-file-dimensions /home/user/Documents/colorful_gray.png 600 400

Output image maintains original dimensions 600x400


Open /home/user/Documents/rainbow_gradient.png (500x300 rainbow gradient) in GIMP. Convert the image to INDEXED color mode with a maximum palette of 16 colors. Then export the result as a GIF file to /home/user/Documents/rainbow_indexed.gif. The output must remain 500x300 pixels.

Output GIF exists

Output file format is GIF

check-file-dimensions /home/user/Documents/rainbow_indexed.gif 500 300

Output dimensions are 500x300

Output file is palette-mode (indexed)


Open the image /home/user/Documents/source.png in GIMP. Export the image in three different formats, maintaining the original 500x400 dimensions: (1) /home/user/Documents/output.jpg (JPEG), (2) /home/user/Documents/output.bmp (BMP), and (3) /home/user/Documents/output.tiff (TIFF).

JPEG output file exists at /home/user/Documents/output.jpg

output.jpg is in JPEG format

check-file-dimensions /home/user/Documents/output.jpg 500 400

JPEG output maintains original 500x400 dimensions

BMP output file exists at /home/user/Documents/output.bmp

output.bmp is in BMP format

TIFF output file exists at /home/user/Documents/output.tiff

output.tiff is in TIFF format


Open /home/user/Documents/source_multi.png (500x500 RGB image with four colored quadrants: red, green, blue, yellow) in GIMP. Export this image in three different formats with specific mode conversions: (1) As RGB PNG to /home/user/Documents/output_rgb.png, (2) Convert to grayscale mode then export as grayscale JPG to /home/user/Documents/output_gray.jpg, (3) Convert to indexed mode with 8 colors then export as GIF to /home/user/Documents/output_indexed.gif.

Grayscale JPEG exists

output_gray.jpg is JPEG format

check-file-dimensions /home/user/Documents/output_gray.jpg 500 500

output_gray.jpg is 500x500

output_gray.jpg is grayscale (mode L)

Indexed GIF exists

output_indexed.gif is GIF format


Rotate /home/user/Documents/quadrants.png 180 degrees and export the result to /home/user/Documents/quadrants_rotated.tiff.

Output TIFF exists

Output file is TIFF format

check-file-dimensions /home/user/Documents/quadrants_rotated.tiff 400 400

Output dimensions are 400x400

check-pixel-color-file /home/user/Documents/quadrants_rotated.tiff 50 50 255 255 0 15

Pixel (50,50) is now yellow (was bottom-right before 180 rotation)

check-pixel-color-file /home/user/Documents/quadrants_rotated.tiff 350 350 255 0 0 15

Pixel (350,350) is now red (was top-left before 180 rotation)

check-pixel-color-file /home/user/Documents/quadrants_rotated.tiff 50 350 0 255 0 15

Pixel (50,350) is now green (was top-right before 180 rotation)


Scale /home/user/Documents/big_photo.png down to 300x200 pixels and export as WebP to /home/user/Documents/thumb.webp.

Thumbnail WebP exists

Output is WEBP format

check-file-dimensions /home/user/Documents/thumb.webp 300 200

Thumbnail dimensions are 300x200


Apply a threshold filter to /home/user/Documents/gradient.png to convert it to pure black and white (threshold value: 128). Export to /home/user/Documents/threshold_result.png (400x200).

Exported threshold result PNG file exists

check-file-dimensions /home/user/Documents/threshold_result.png 400 200

Image dimensions are 400x200 pixels

check-pixel-color-file /home/user/Documents/threshold_result.png 50 100 0 0 0

Left side pixel is pure black (below threshold)

check-pixel-color-file /home/user/Documents/threshold_result.png 350 100 255 255 255

Right side pixel is pure white (above threshold)


Open /home/user/Documents/icon_rgba.png (256x256 RGBA — a solid yellow filled circle on a transparent background) in GIMP. Export the image as a WebP file at /home/user/Documents/icon_export.webp, preserving the RGBA alpha channel and the original 256x256 dimensions.

Output WebP exists

Output file is WEBP format

check-file-dimensions /home/user/Documents/icon_export.webp 256 256

Output dimensions are 256x256

Output preserves RGBA alpha channel

check-pixel-color-file /home/user/Documents/icon_export.webp 128 128 255 255 0 20

Center pixel (128,128) is yellow


Edit /home/user/godot_projects/autoload_game/project.godot. Add an [autoload] section (if it does not exist) and add an entry named GameState pointing to the script res://scripts/game_state.gd. The entry should look exactly like:

[autoload]

GameState="*res://scripts/game_state.gd"

(the leading '*' is Godot's convention for enabled autoloads). Save the file. The script at /home/user/godot_projects/autoload_game/scripts/game_state.gd already exists.

GameState autoload exists

Referenced script still exists

Autoload path matches expected


Edit /home/user/godot_projects/platformer/project.godot. Inside the existing [input] section, add a new input action named jump bound to the Space key. You can copy the format of the existing move_left/move_right entries and use the SPACE key. The SPACE key's physical_keycode value in Godot 4 is 32. An example entry you can use is:

jump={
"deadzone": 0.5,
"events": [Object(InputEventKey,"device":-1,"keycode":0,"physical_keycode":32,"unicode":32,"echo":false)
]
}

Save the file.

jump action exists

check-input-action-key /home/user/godot_projects/platformer/project.godot jump SPACE

jump action bound to SPACE

existing move_left still present


Edit the Godot 4 scene file at /home/user/godot_projects/ui_game/main.tscn. The scene currently contains only a root Node2D named Main. Add a new child node under Main with name="ScoreLabel", type="Label", and property text="Score: 0". In a .tscn file this looks like:

[node name="ScoreLabel" type="Label" parent="."]
text = "Score: 0"

Save the file.

ScoreLabel node exists

check-node-type /home/user/godot_projects/ui_game/main.tscn ScoreLabel Label

ScoreLabel is a Label

check-node-parent /home/user/godot_projects/ui_game/main.tscn ScoreLabel .

ScoreLabel parent is root

check-node-property /home/user/godot_projects/ui_game/main.tscn ScoreLabel text '"Score: 0"'

ScoreLabel text is 'Score: 0'


Edit /home/user/godot_projects/script_game/main.tscn so that the Player node has the script res://scripts/player.gd attached. You must add an ext_resource line near the top of the file and reference it from the Player node's script property. The final main.tscn should include:

[ext_resource type="Script" path="res://scripts/player.gd" id="1_player"]

...and the Player node block should contain:
script = ExtResource("1_player")

Save the file. Do not modify the player.gd script itself.

Scene has player.gd as ext_resource

Player node still exists

Scene references ExtResource

player.gd class_name preserved


Edit /home/user/godot_projects/build_scene_game/main.tscn. The scene currently contains only a root Node2D named Main. Add three new child nodes under Main:

1. A Sprite2D named Icon (parent=".")
2. A Label named Title (parent=".") with property text="Welcome"
3. A Timer named Spawner (parent=".") with property wait_time=2.0

Each node should be a [node ...] block in the .tscn file. After your edits, the scene must have exactly 4 nodes total (Main + Icon + Title + Spawner). Save the file.

Icon node exists

check-node-type /home/user/godot_projects/build_scene_game/main.tscn Icon Sprite2D

Icon type is Sprite2D

Title node exists

check-node-type /home/user/godot_projects/build_scene_game/main.tscn Title Label

Title type is Label

check-node-property /home/user/godot_projects/build_scene_game/main.tscn Title text '"Welcome"'

Title text is Welcome

Spawner node exists

check-node-type /home/user/godot_projects/build_scene_game/main.tscn Spawner Timer

Spawner type is Timer

check-node-property /home/user/godot_projects/build_scene_game/main.tscn Spawner wait_time 2.0

Spawner wait_time is 2.0

Scene has exactly 4 nodes


Edit /home/user/godot_projects/physics_game/project.godot. Make these changes in the INI-like text: (1) change the [application] section so that config/name is exactly "Gravity Game"; (2) add a [physics] section (if missing) and set the following keys: physics/2d/default_gravity=1200, physics/2d/default_gravity_vector=Vector2(0, 1), and physics/2d/sleep_threshold_linear=2.5. Leave the rest of the file intact and save. You can edit the file in gedit or Sublime Text.

project.godot still exists

check-project-setting /home/user/godot_projects/physics_game/project.godot application/config/name '"Gravity Game"'

config/name is 'Gravity Game'

check-project-setting /home/user/godot_projects/physics_game/project.godot physics/2d/default_gravity 1200

2D default gravity is 1200

check-project-setting /home/user/godot_projects/physics_game/project.godot physics/2d/default_gravity_vector 'Vector2(0, 1)'

Gravity vector is Vector2(0, 1)

check-project-setting /home/user/godot_projects/physics_game/project.godot physics/2d/sleep_threshold_linear 2.5

Sleep threshold linear is 2.5


Create an EnemyController class in /home/user/godot_projects/enemy_ctrl_game/scripts/enemy_controller.gd with class_name EnemyController extending CharacterBody2D. Declare died and health_changed signals, @export variables (max_hp: int = 100, speed: float = 120.0, damage: int = 10), and implement take_damage(amount: int), heal(amount: int), and _physics_process(delta: float) functions. The file should contain a valid GDScript class with all specified members.

class_name is EnemyController

extends CharacterBody2D

died signal declared

health_changed signal declared

@export max_hp declared

@export speed declared

@export damage declared

take_damage function exists

heal function exists

_physics_process function exists


Edit /home/user/godot_projects/audio_bus_game/default_bus_layout.tres. It currently contains only the Master bus. Extend the [resource] section so the layout contains three buses:

- bus 0: Master (already present)
- bus 1: name="Music", send="Master", volume_db=-6.0, solo/mute/bypass_fx all false
- bus 2: name="SFX", send="Master", volume_db=0.0, solo/mute/bypass_fx all false

Also attach an AudioEffectReverb to the Music bus. Add an [sub_resource type="AudioEffectReverb" id="MusicReverb"] block that sets wet = 0.3, and in [resource] assign:

bus/1/effect/0/effect = SubResource("MusicReverb")
bus/1/effect/0/enabled = true

Keep gd_resource type="AudioBusLayout" in the header. Save the file.

resource is AudioBusLayout

check-resource-property /home/user/godot_projects/audio_bus_game/default_bus_layout.tres bus/1/name '"Music"'

bus 1 is Music

check-resource-property /home/user/godot_projects/audio_bus_game/default_bus_layout.tres bus/1/send '"Master"'

Music bus sends to Master

check-resource-property /home/user/godot_projects/audio_bus_game/default_bus_layout.tres bus/1/volume_db -6.0

Music volume_db -6.0

check-resource-property /home/user/godot_projects/audio_bus_game/default_bus_layout.tres bus/2/name '"SFX"'

bus 2 is SFX

check-resource-property /home/user/godot_projects/audio_bus_game/default_bus_layout.tres bus/2/send '"Master"'

SFX bus sends to Master

reverb sub_resource present

wet property present on reverb

wet value 0.3 present

Music bus effect slot 0 assigned


Replace the contents of /home/user/godot_projects/shader_game/scripts/grayscale.gdshader with a valid Godot 4 canvas_item shader that samples the input texture at UV and converts the color to grayscale using luminance weights (0.299, 0.587, 0.114).

The shader must include all of these exactly:

shader_type canvas_item;

void fragment() {
	vec4 c = texture(TEXTURE, UV);
	float gray = c.r * 0.299 + c.g * 0.587 + c.b * 0.114;
	COLOR = vec4(gray, gray, gray, c.a);
}

Save the file.

shader file exists

shader_type declared

shader is canvas_item

function body present

fragment function

samples TEXTURE

red luminance weight

green luminance weight

blue luminance weight

writes COLOR


Edit /home/user/godot_projects/export_linux_game/export_presets.cfg. It currently only contains a comment. Turn it into a valid Godot export_presets.cfg with a single Linux/X11 preset. The file must contain at minimum the following block:

[preset.0]

name="Linux"
platform="Linux/X11"
runnable=true
custom_features=""
export_filter="all_resources"
include_filter=""
exclude_filter=""
export_path="build/game.x86_64"
encryption_include_filters=""
encryption_exclude_filters=""
encrypt_pck=false
encrypt_directory=false

[preset.0.options]

binary_format/embed_pck=false

Save the file.

export_presets.cfg exists

preset.0 section present

preset name Linux present

platform Linux/X11 present

runnable flag present

export_path references build/game.x86_64

preset.0.options section present


Open /home/user/godot_projects/class_game/scripts/enemy.gd. It is currently an empty stub. Replace its contents with a valid GDScript class that satisfies all of the following:

1. Declares class_name Enemy
2. extends CharacterBody2D
3. Declares a signal named died
4. Has an @export var max_health: int = 100
5. Defines a function named take_damage that takes one parameter amount: int

An example implementation:

class_name Enemy
extends CharacterBody2D

signal died

@export var max_health: int = 100

var current_health: int = max_health

func take_damage(amount: int):
	current_health -= amount
	if current_health <= 0:
		died.emit()

Save the file.

class_name is Enemy

extends CharacterBody2D

@export var max_health exists

take_damage function exists

died signal exists


Edit /home/user/godot_projects/combo_game/project.godot. Set application/config/name="Combo Game". Add a [display] section with window/size/viewport_width=1024 and window/size/viewport_height=768. Add an [input] section with pause action bound to ESCAPE and screenshot action bound to F2. Save the file.

check-project-setting /home/user/godot_projects/combo_game/project.godot application/config/name '"Combo Game"'

config/name is 'Combo Game'

check-project-setting /home/user/godot_projects/combo_game/project.godot display/window/size/viewport_width 1024

viewport_width is 1024

check-project-setting /home/user/godot_projects/combo_game/project.godot display/window/size/viewport_height 768

viewport_height is 768

pause action added

check-input-action-key /home/user/godot_projects/combo_game/project.godot pause ESCAPE

pause bound to ESCAPE

screenshot action added

check-input-action-key /home/user/godot_projects/combo_game/project.godot screenshot F2

screenshot bound to F2


Edit /home/user/godot_projects/rpg_game/project.godot. The [input] section has move_left (A) and move_right (D). Add four new actions: move_up bound to W, move_down bound to S, attack bound to J, and interact bound to E. Use the same InputEventKey format as existing entries. Save the file.

Existing move_left preserved

Existing move_right preserved

move_up action added

check-input-action-key /home/user/godot_projects/rpg_game/project.godot move_up W

move_up bound to W

move_down action added

check-input-action-key /home/user/godot_projects/rpg_game/project.godot move_down S

move_down bound to S

attack action added

check-input-action-key /home/user/godot_projects/rpg_game/project.godot attack J

attack bound to J

interact action added

check-input-action-key /home/user/godot_projects/rpg_game/project.godot interact E

interact bound to E


Edit /home/user/godot_projects/multi_autoload_game/project.godot. Add an [autoload] section (if missing) and register three autoload singletons pointing at the pre-existing scripts in the project:

[autoload]

GameState="*res://scripts/game_state.gd"
AudioManager="*res://scripts/audio_manager.gd"
SaveSystem="*res://scripts/save_system.gd"

Each leading '*' marks the autoload as enabled. Do not modify or delete the existing .gd script files. Save the file.

GameState autoload is registered

AudioManager autoload is registered

SaveSystem autoload is registered

GameState points to game_state.gd (enabled)

AudioManager points to audio_manager.gd (enabled)

SaveSystem points to save_system.gd (enabled)

game_state.gd still exists

audio_manager.gd still exists

save_system.gd still exists


Perform a two-file refactor inside /home/user/godot_projects/refactor_game/.

(1) Edit main.tscn to attach the pre-existing script res://scripts/enemy.gd to the Enemy node. Add an ext_resource line near the top of the file, and reference it from the Enemy node block:

[ext_resource type="Script" path="res://scripts/enemy.gd" id="1_enemy"]

... and inside the [node name="Enemy" ...] block add:

script = ExtResource("1_enemy")

(2) Edit project.godot to add an [autoload] section (if missing) that registers GameManager pointing at the pre-existing script:

[autoload]

GameManager="*res://scripts/game_manager.gd"

Do not modify the contents of enemy.gd or game_manager.gd. Save both files.

Enemy node still exists

Scene references enemy.gd via ext_resource

main.tscn uses ExtResource

GameManager autoload is registered

GameManager points to game_manager.gd (enabled)

enemy.gd class_name preserved

game_manager.gd still exists


Edit /home/user/godot_projects/display_game/project.godot. Add a [display] section with window/size/viewport_width=1920 and window/size/viewport_height=1080. Save the file.

project.godot exists

check-project-setting /home/user/godot_projects/display_game/project.godot display/window/size/viewport_width 1920

viewport_width is 1920

check-project-setting /home/user/godot_projects/display_game/project.godot display/window/size/viewport_height 1080

viewport_height is 1080


Edit /home/user/godot_projects/blank_game/project.godot. In the [application] section, set config/name="Space Runner" and run/main_scene="res://main.tscn". Save the file.

project.godot still exists

check-project-setting /home/user/godot_projects/blank_game/project.godot application/config/name '"Space Runner"'

config/name is 'Space Runner'

check-project-setting /home/user/godot_projects/blank_game/project.godot application/run/main_scene '"res://main.tscn"'

run/main_scene is res://main.tscn


Edit /home/user/godot_projects/renderer_game/project.godot. In the [rendering] section, change the value of renderer/rendering_method from gl_compatibility to forward_plus. The final line should be: renderer/rendering_method="forward_plus". Save the file.

rendering_method is forward_plus

project.godot still exists


Edit /home/user/godot_projects/window_game/project.godot. In [application], set config/name="Stellar Arena" and config/icon="res://icon.svg". Add a [display] section with window/size/viewport_width=1280, window/size/viewport_height=720, window/size/mode=2, and window/stretch/mode="canvas_items". Preserve the existing [rendering] section. Save the file.

check-project-setting /home/user/godot_projects/window_game/project.godot application/config/name '"Stellar Arena"'

config/name is 'Stellar Arena'

check-project-setting /home/user/godot_projects/window_game/project.godot application/config/icon '"res://icon.svg"'

config/icon is res://icon.svg

check-project-setting /home/user/godot_projects/window_game/project.godot display/window/size/viewport_width 1280

viewport_width is 1280

check-project-setting /home/user/godot_projects/window_game/project.godot display/window/size/viewport_height 720

viewport_height is 720

check-project-setting /home/user/godot_projects/window_game/project.godot display/window/size/mode 2

window mode is 2 (Maximized)

check-project-setting /home/user/godot_projects/window_game/project.godot display/window/stretch/mode '"canvas_items"'

stretch mode is canvas_items

rendering section untouched


Open the file /home/user/Documents/product_overview.odp in LibreOffice Impress. This 4-slide deck has: Slide 1 = title 'Orbit CRM' with subtitle 'Learn more'; Slide 2 = 'Features' with 3 bullets; Slide 3 = 'Pricing' with 3 bullets; Slide 4 = 'Contact' with 3 lines.

Add an entrance (Entry) animation to the body/bullet-list placeholder on Slide 2, Slide 3, and Slide 4 so that when the slide is presented, the bullets animate in. Turn the text 'Learn more' inside the subtitle of Slide 1 into a hyperlink pointing to https://www.libreoffice.org. Save the file, overwriting /home/user/Documents/product_overview.odp. Keep the .odp extension.

The deck must still have exactly 4 slides when you finish.

product_overview.odp is saved on disk

Deck still has exactly 4 slides

Slide 2 has at least one animation element

Slide 3 has at least one animation element

Slide 4 has at least one animation element

check-hyperlink-exists /home/user/Documents/product_overview.odp libreoffice.org "Learn more"

Slide 1 has a hyperlink on text 'Learn more' to libreoffice.org


Open the file /home/user/Documents/training_deck.pptx in LibreOffice Impress. This presentation has 4 slides about employee onboarding with titles: 'Welcome', 'Company History', 'Tools & Systems', 'Q&A'.

Add speaker notes to each slide as follows:

Slide 1 notes: 'Introduce yourself and welcome new hires. Estimated time: 5 minutes.'
Slide 2 notes: 'Walk through the company history timeline on the screen. Estimated time: 10 minutes.'
Slide 3 notes: 'Demonstrate the tools live. Let attendees follow along. Estimated time: 20 minutes.'
Slide 4 notes: 'Open the floor for questions. Hand out feedback forms. Estimated time: 15 minutes.'

Save the file.

check-notes-contain 0 "Introduce yourself and welcome new hires"

Slide 1 notes contain 'Introduce yourself and welcome new hires'

check-notes-contain 0 "Estimated time: 5 minutes"

Slide 1 notes contain 'Estimated time: 5 minutes'

check-notes-contain 1 "Walk through the company history timeline"

Slide 2 notes contain 'Walk through the company history timeline'

check-notes-contain 1 "Estimated time: 10 minutes"

Slide 2 notes contain 'Estimated time: 10 minutes'

check-notes-contain 2 "Demonstrate the tools live"

Slide 3 notes contain 'Demonstrate the tools live'

check-notes-contain 2 "Estimated time: 20 minutes"

Slide 3 notes contain 'Estimated time: 20 minutes'

check-notes-contain 3 "Open the floor for questions"

Slide 4 notes contain 'Open the floor for questions'

check-notes-contain 3 "Estimated time: 15 minutes"

Slide 4 notes contain 'Estimated time: 15 minutes'

Presentation still has 4 slides (no slides added or removed)

File has been saved to disk


Open the file /home/user/Documents/sales_pitch.pptx in LibreOffice Impress. This presentation has 4 slides with titles: 'Our Solution', 'Market Opportunity', 'Business Model', 'Call to Action'.

Add a slide transition effect to every slide in the presentation. Add speaker notes to Slide 4 ('Call to Action'): 'Ask for questions and distribute business cards.'

The presentation should still have exactly 4 slides when you are done. Save the file.

Presentation still has exactly 4 slides

Slide 1 has a transition effect applied

Slide 2 has a transition effect applied

Slide 3 has a transition effect applied

Slide 4 has a transition effect applied

check-notes-contain 3 "Ask for questions and distribute business cards"

Slide 4 notes contain 'Ask for questions and distribute business cards'

File has been saved to disk


Open /home/user/Documents/annual_draft.pptx in LibreOffice Impress. It currently contains 5 slides with these titles (in order): 'Annual Report 2025', 'Financials', 'Customers', 'Operations', 'Thank You'.

Transform it into a more structured 9-slide deck in this exact final order:

1. 'Annual Report 2025' (existing title slide — keep it, just add speaker notes as described below)
2. 'Part I: Performance' (NEW section-divider slide)
3. 'Financials' (existing)
4. 'Customers' (existing)
5. 'Part II: Operations & Outlook' (NEW section-divider slide)
6. 'Operations' (existing)
7. 'Product Roadmap' (NEW content slide) — body contains 'Q1: Mobile redesign', 'Q2: API v3 launch', 'Q3: Enterprise SSO', 'Q4: Self-serve onboarding'
8. 'Team Highlights' (NEW content slide) — body contains 'Engineering grew 30%', 'Three new office locations', 'Employee NPS at 62'
9. 'Thank You' (existing)

On Slide 1 ('Annual Report 2025'), add speaker notes: 'Present this deck to the board on February 14'.

Save the file back to /home/user/Documents/annual_draft.pptx.

Deck has 9 slides

check-slide-title 0 "Annual Report 2025"

Slide 1 title unchanged

check-slide-title 1 "Part I: Performance"

Slide 2 is 'Part I: Performance'

Slide 3 is 'Financials'

Slide 4 is 'Customers'

check-slide-title 4 "Part II: Operations & Outlook"

Slide 5 is 'Part II: Operations & Outlook'

Slide 6 is 'Operations'

Slide 7 is 'Product Roadmap'

check-slide-contains 6 "Q1: Mobile redesign"

Slide 7 bullet Q1

check-slide-contains 6 "Q2: API v3 launch"

Slide 7 bullet Q2

check-slide-contains 6 "Q3: Enterprise SSO"

Slide 7 bullet Q3

check-slide-contains 6 "Q4: Self-serve onboarding"

Slide 7 bullet Q4

Slide 8 is 'Team Highlights'

check-slide-contains 7 "Engineering grew 30%"

Slide 8 bullet engineering

check-slide-contains 7 "Three new office locations"

Slide 8 bullet offices

check-slide-contains 7 "Employee NPS at 62"

Slide 8 bullet NPS

Slide 9 is 'Thank You'

Slide 1 notes mention February 14

Slide 1 notes mention 'board'

File still exists on disk


Create a new presentation from scratch in LibreOffice Impress with exactly 8 slides summarizing a technical book for a reading group.

Slide 1 (Title Slide): Title 'Designing Data-Intensive Systems: Summary', subtitle 'Notes by the Reading Group'.
Slide 2: Title 'Chapter 1: Reliability'. Body: 'Fault tolerance techniques', 'Availability versus reliability', 'Failure is always the default'.
Slide 3: Title 'Chapter 2: Data Models'. Body: 'Relational vs Document', 'Graph models for relationships', 'Query languages compared'.
Slide 4: Title 'Chapter 3: Storage Engines'. Body: 'LSM trees and B-trees', 'Write amplification tradeoffs', 'Column-oriented storage'.
Slide 5: Title 'Chapter 4: Encoding'. Body: 'Schema evolution', 'Forward and backward compatibility', 'Avro, Protobuf, Thrift'.
Slide 6: Title 'Chapter 5: Replication'. Body: 'Leader-follower and multi-leader', 'Consistency models', 'Handling replica failure'.
Slide 7: Title 'Chapter 6: Partitioning'. Body: 'Hash and range partitioning', 'Rebalancing strategies', 'Secondary indexes and partitioning'.
Slide 8: Title 'Key Takeaways'. Body: 'Tradeoffs everywhere', 'Understand your workload first', 'Simplicity usually wins'.

Add speaker notes to Slide 1: 'reading group meets Thursdays in the library'.

Save the presentation as /home/user/Documents/book_summary.pptx.

Exactly 8 slides

check-slide-title 0 "Designing Data-Intensive Systems: Summary"

Slide 1 title

check-slide-contains 0 "Notes by the Reading Group"

Slide 1 subtitle

check-slide-title 1 "Chapter 1: Reliability"

Slide 2 title

check-slide-contains 1 "Fault tolerance techniques"

Slide 2 body

check-slide-title 2 "Chapter 2: Data Models"

Slide 3 title

check-slide-contains 2 "Relational vs Document"

Slide 3 body

check-slide-title 3 "Chapter 3: Storage Engines"

Slide 4 title

check-slide-contains 3 "LSM trees and B-trees"

Slide 4 body

check-slide-title 4 "Chapter 4: Encoding"

Slide 5 title

check-slide-contains 4 "Schema evolution"

Slide 5 body

check-slide-title 5 "Chapter 5: Replication"

Slide 6 title

check-slide-contains 5 "Leader-follower and multi-leader"

Slide 6 body

check-slide-title 6 "Chapter 6: Partitioning"

Slide 7 title

check-slide-contains 6 "Hash and range partitioning"

Slide 7 body

Slide 8 title

check-slide-contains 7 "Tradeoffs everywhere"

Slide 8 body

check-notes-contain 0 "reading group meets Thursdays"

Slide 1 notes

File saved


Create a new presentation from scratch in LibreOffice Impress for a university course syllabus. The presentation must have exactly 6 slides.

Slide 1 (Title Slide): Title 'CS 301: Database Systems', subtitle 'Fall 2026 Syllabus'.

Slide 2: Title 'Instructor Information'. Body content:
- 'Professor: Dr. Elena Vasquez'
- 'Office: Science Hall 204'
- 'Office Hours: Tue/Thu 2-4 PM'

Slide 3: Title 'Course Objectives'. Body content:
- 'Design relational database schemas'
- 'Write complex SQL queries'
- 'Implement indexing and optimization'

Slide 4: Title 'Grading Policy'. Body content:
- 'Midterm Exam: 25%'
- 'Final Exam: 30%'
- 'Programming Projects: 35%'
- 'Class Participation: 10%'

Slide 5: Title 'Schedule Overview'. Body content:
- 'Weeks 1-4: Relational Model and SQL'
- 'Weeks 5-8: Normalization and Transactions'
- 'Weeks 9-12: Indexing and Query Optimization'
- 'Weeks 13-15: NoSQL and Review'

Slide 6: Title 'Resources'. Body content:
- 'Textbook: Database System Concepts, 7th Edition'
- 'Online: PostgreSQL Documentation'
- 'Lab Access: Room CS-108'

Add speaker notes to Slide 4: 'Late submissions lose 10% per day.'
Add speaker notes to Slide 6: 'Recommend students install PostgreSQL locally.'

Save the presentation as /home/user/Documents/cs301_syllabus.pptx.

Presentation has exactly 6 slides

check-slide-title 0 "CS 301: Database Systems"

Slide 1 title is 'CS 301: Database Systems'

check-slide-contains 0 "Fall 2026 Syllabus"

Slide 1 contains subtitle 'Fall 2026 Syllabus'

check-slide-title 1 "Instructor Information"

Slide 2 title is 'Instructor Information'

check-slide-contains 1 "Dr. Elena Vasquez"

Slide 2 contains instructor name

check-slide-contains 1 "Office Hours: Tue/Thu 2-4 PM"

Slide 2 contains office hours

Slide 3 title is 'Course Objectives'

check-slide-contains 2 "Write complex SQL queries"

Slide 3 contains SQL objective

Slide 4 title is 'Grading Policy'

check-slide-contains 3 "Programming Projects: 35%"

Slide 4 contains projects grading weight

check-notes-contain 3 "Late submissions lose 10% per day"

Slide 4 notes contain late policy

Slide 5 title is 'Schedule Overview'

check-slide-contains 4 "Weeks 9-12: Indexing and Query Optimization"

Slide 5 contains weeks 9-12 topic

Slide 6 title is 'Resources'

check-slide-contains 5 "Database System Concepts, 7th Edition"

Slide 6 contains textbook reference

check-notes-contain 5 "Recommend students install PostgreSQL locally"

Slide 6 notes contain PostgreSQL recommendation

File cs301_syllabus.pptx exists


Create a new presentation from scratch in LibreOffice Impress with exactly 7 slides for a conference agenda.

Slide 1 (Title Slide): Title 'DevSummit 2026', subtitle 'October 12-14, San Francisco'.
Slide 2: Title 'Opening Keynote'. Body: 'Dr. Lin Ortega', 'The next decade of developer tools'.
Slide 3: Title 'AI Infrastructure Track'. Body: 'GPU Cluster Scaling', 'Distributed Inference', 'Cost Optimization'.
Slide 4: Title 'Security Track'. Body: 'Zero-Trust Networking', 'Supply Chain Auditing', 'Secrets Management'.
Slide 5: Title 'Open Source Track'. Body: 'Maintainer Roundtable', 'Funding Models', 'Community Health'.
Slide 6: Title 'Evening Social'. Body: 'Rooftop Terrace 7pm', 'Dinner and networking'.
Slide 7: Title 'Closing Remarks'. Body: 'See you at DevSummit 2027'.

Add speaker notes to Slide 1: 'welcome attendees and cover logistics for the three day event'.
Add speaker notes to Slide 2: 'introduce Dr. Ortega and her latest research'.
Add speaker notes to Slide 6: 'remind attendees to RSVP for the dinner'.

Save the presentation as /home/user/Documents/devsummit_agenda.pptx.

Presentation has exactly 7 slides

Slide 1 title is 'DevSummit 2026'

check-slide-contains 0 "October 12-14, San Francisco"

Slide 1 subtitle

Slide 2 title

Slide 2 contains speaker name

check-slide-title 2 "AI Infrastructure Track"

Slide 3 title

check-slide-contains 2 "GPU Cluster Scaling"

Slide 3 content

Slide 4 title

check-slide-contains 3 "Zero-Trust Networking"

Slide 4 content

Slide 5 title

check-slide-contains 4 "Maintainer Roundtable"

Slide 5 content

Slide 6 title

check-slide-contains 5 "Rooftop Terrace 7pm"

Slide 6 content

Slide 7 title

Slide 1 notes mention welcome

Slide 1 notes mention logistics

check-notes-contain 1 "introduce Dr. Ortega"

Slide 2 notes intro speaker

Slide 6 notes mention RSVP

Output file exists


Open the file /home/user/Documents/talk_skeleton.odp in LibreOffice Impress. The deck currently has only 3 skeleton slides with titles 'Motivation', 'Approach', 'Evaluation' and empty bodies.

Fill in body content for each existing slide and add three new slides so the final 6-slide deck is a complete research talk:

Slide 1 'Motivation' - body: 'Current tools do not scale to petabyte datasets'.
Slide 2 'Approach' - body: 'Tiered storage with vector indexing'.
Slide 3 'Evaluation' - body: 'Benchmarked on TPC-H at 10TB'.
Slide 4 (new) 'Related Work' - body: 'Comparison with Dremel and Presto'.
Slide 5 (new) 'Limitations' - body: 'Cold start latency remains high'.
Slide 6 (new) 'Future Work' - body: 'Adaptive query planning'.

Save the file (Ctrl+S) keeping the same /home/user/Documents/talk_skeleton.odp path and ODP format.

Exactly 6 slides

Slide 1 title preserved

check-slide-contains 0 "Current tools do not scale to petabyte datasets"

Slide 1 body filled

Slide 2 title preserved

check-slide-contains 1 "Tiered storage with vector indexing"

Slide 2 body filled

Slide 3 title preserved

check-slide-contains 2 "Benchmarked on TPC-H at 10TB"

Slide 3 body filled

Slide 4 new

check-slide-contains 3 "Comparison with Dremel and Presto"

Slide 4 body

Slide 5 new

check-slide-contains 4 "Cold start latency remains high"

Slide 5 body

Slide 6 new

check-slide-contains 5 "Adaptive query planning"

Slide 6 body

File saved


Open LibreOffice Impress.

1、Then set 'Always save as' for 'Presentation' to 'PowerPoint 2007-365 (.pptx)', enable 'Always create backup copy', enable 'Save AutoRecovery information every', and set the AutoRecovery interval to 1 minute.

2. Change 'Measurement unit' to 'Inch'.

After confirming all dialogs, make sure the preferences are flushed to ~/.config/libreoffice/4/user/registrymodifications.xcu. The verifier cannot read the preferences until LibreOffice has exited cleanly.

AutoSave interval property has been written to the LibreOffice registry

check-registry-value /org.openoffice.Office.Common/Save/Document AutoSaveTimeIntervall 1

AutoSave interval is set to 1 minute

check-registry-value /org.openoffice.Office.Common/Save/Document AutoSave true

AutoSave is enabled

check-registry-value /org.openoffice.Office.Common/Save/Document CreateBackup true

'Always create backup copy' is enabled

Default save filter for Impress has been set

check-registry-value /org.openoffice.Office.Common/Save/Document/Impress ooSetupFactoryDefaultFilter "Impress MS PowerPoint 2007 XML"

Default save filter for Impress is PowerPoint 2007-365 (.pptx)

check-registry-value /org.openoffice.Office.Impress/Layout/Other/MeasureUnit Metric 8

Impress measurement unit set to Inch (enum value 8)


Open LibreOffice Impress.

Set 'Always save as' for 'Presentation' to 'PowerPoint 2007-365 (.pptx)', enable 'Always create backup copy', enable 'Save AutoRecovery information every', and set the AutoRecovery interval to 3 minutes. Change 'Measurement unit' to 'Inch'.

After confirming all dialogs, make sure the preferences are flushed to ~/.config/libreoffice/4/user/registrymodifications.xcu. The verifier cannot read the preferences until LibreOffice has exited cleanly.

check-registry-value /org.openoffice.Office.Common/Save/Document AutoSaveTimeIntervall 3

AutoSave interval is set to 3 minutes

AutoSave is enabled

'Always create backup copy' is enabled


Open LibreOffice Impress.

1、Then set 'Always save as' for 'Presentation' to 'PowerPoint 2007-365 (.pptx)', enable 'Always create backup copy', enable 'Save AutoRecovery information every', and set the AutoRecovery interval to 7 minutes.

2. Change 'Measurement unit' to 'Inch'.

After confirming all dialogs, make sure the preferences are flushed to ~/.config/libreoffice/4/user/registrymodifications.xcu. The verifier cannot read the preferences until LibreOffice has exited cleanly.

check-registry-value /org.openoffice.Office.Common/Save/Document AutoSaveTimeIntervall 7

AutoSave interval is set to 7 minutes

AutoSave is enabled

'Always create backup copy' is enabled


Open LibreOffice Impress.

Set 'Always save as' for 'Presentation' to 'PowerPoint 2007-365 (.pptx)', enable 'Always create backup copy', enable 'Save AutoRecovery information every', and set the AutoRecovery interval to 5 minutes. Change 'Measurement unit' to 'Inch'.

After confirming all dialogs, make sure the preferences are flushed to ~/.config/libreoffice/4/user/registrymodifications.xcu. The verifier cannot read the preferences until LibreOffice has exited cleanly.

check-registry-value /org.openoffice.Office.Common/Save/Document AutoSaveTimeIntervall 5

AutoSave interval is set to 5 minutes

AutoSave is enabled

'Always create backup copy' is enabled


Open the file /home/user/Documents/main_deck.pptx in LibreOffice Impress. This presentation has 3 slides with titles: 'Project Kickoff', 'Timeline', 'Budget'.

You also have a second presentation file at /home/user/Documents/appendix_deck.pptx which has 2 slides with titles: 'Risk Assessment', 'Stakeholder List'.

Perform the following steps:

1. Insert all slides from appendix_deck.pptx at the end of the main_deck.pptx.

2. Add a new slide between 'Budget' (slide 3) and 'Risk Assessment' (which is now slide 4). The new slide should have:
   - Title: 'Transition'
   - Body text: 'The following slides contain supplementary materials.'

3. Add speaker notes to the 'Transition' slide: 'Pause here and ask if there are questions before continuing.'

The final presentation should have exactly 6 slides in this order:
1. Project Kickoff
2. Timeline
3. Budget
4. Transition
5. Risk Assessment
6. Stakeholder List

Save the file as /home/user/Documents/combined_deck.pptx.

Final presentation has exactly 6 slides

Slide 1 title is 'Project Kickoff'

Slide 2 title is 'Timeline'

Slide 3 title is 'Budget'

Slide 4 title is 'Transition'

check-slide-contains 3 "The following slides contain supplementary materials"

Slide 4 contains expected body text

check-notes-contain 3 "Pause here and ask if there are questions before continuing"

Slide 4 notes contain expected text

check-slide-contains 4 "Risk Assessment"

Slide 5 contains 'Risk Assessment'

check-slide-contains 5 "Stakeholder List"

Slide 6 contains 'Stakeholder List'

Combined file exists at expected path


Create a new presentation from scratch in LibreOffice Impress for a software training manual. The presentation must have exactly 8 slides.

Slide 1 (Title Slide): Title 'DataVault User Training', subtitle 'Version 3.0 - March 2026'.

Slide 2: Title 'Table of Contents'. Body content as a list:
- 'Installation'
- 'Configuration'
- 'Basic Operations'
- 'Advanced Features'
- 'Troubleshooting'
- 'Support'

Slide 3: Title 'Installation'. Body content:
- 'Download from https://datavault.internal/releases'
- 'Requires 4GB RAM and 2GB disk space'

Slide 4: Title 'Configuration'. Body content:
- 'Set database connection string in config.yaml'
- 'Default port: 5432'

Slide 5: Title 'Basic Operations'. Body content:
- 'Create a new vault: File > New Vault'
- 'Import data: File > Import CSV'

Slide 6: Title 'Advanced Features'. Body content:
- 'Automated backups every 6 hours'
- 'Role-based access control with LDAP integration'

Slide 7: Title 'Troubleshooting'. Body content:
- 'Error 101: Check database connectivity'
- 'Error 202: Verify license key'

Slide 8: Title 'Support'. Body content:
- 'Email: support@datavault.com'
- 'Phone: 1-800-555-0199'

Add speaker notes to Slide 1: 'Welcome participants and verify everyone has a laptop ready.'
Add speaker notes to Slide 5: 'Live demo: walk through creating a vault step by step.'

Save the presentation as /home/user/Documents/datavault_training.pptx.

Presentation has exactly 8 slides

check-slide-title 0 "DataVault User Training"

Slide 1 title is 'DataVault User Training'

check-slide-contains 0 "Version 3.0 - March 2026"

Slide 1 contains subtitle 'Version 3.0 - March 2026'

Slide 2 title is 'Table of Contents'

Slide 2 contains 'Installation'

Slide 3 title is 'Installation'

check-slide-contains 2 "Requires 4GB RAM and 2GB disk space"

Slide 3 contains system requirements

Slide 4 title is 'Configuration'

check-slide-contains 3 "Default port: 5432"

Slide 4 contains default port info

Slide 5 title is 'Basic Operations'

check-slide-contains 4 "Import data: File > Import CSV"

Slide 5 contains import instructions

Slide 6 title is 'Advanced Features'

check-slide-contains 5 "Role-based access control with LDAP integration"

Slide 6 contains RBAC info

Slide 7 title is 'Troubleshooting'

check-slide-contains 6 "Error 101: Check database connectivity"

Slide 7 contains error 101 info

Slide 8 title is 'Support'

Slide 8 contains support email

check-notes-contain 0 "Welcome participants and verify everyone has a laptop ready"

Slide 1 notes contain welcome message

check-notes-contain 4 "Live demo: walk through creating a vault step by step"

Slide 5 notes contain demo instructions

File datavault_training.pptx exists


Create a new presentation from scratch in LibreOffice Impress with exactly 7 slides for a 'Python for Data Science' curriculum.

Slide 1 (Title Slide): Title 'Python for Data Science'. Subtitle '8-Week Intensive Curriculum'.
Slide 2: Title 'Week 1-2: Foundations'. Body bullets: 'Python syntax', 'Data structures', 'Functions & modules'.
Slide 3: Title 'Week 3-4: Data Wrangling'. Body bullets: 'NumPy arrays', 'pandas DataFrames', 'Cleaning real datasets'.
Slide 4: Title 'Week 5-6: Visualisation & Stats'. Body bullets: 'Matplotlib basics', 'Seaborn plots', 'Descriptive statistics'.
Slide 5: Title 'Week 7: Machine Learning'. Body bullets: 'scikit-learn API', 'Train/test split', 'Model evaluation'.
Slide 6: Title 'Week 8: Capstone'. Body bullets: 'Pick a dataset', 'Deliver notebook + slides', 'Peer review'.
Slide 7: Title 'Course Wrap-Up'. Body bullets: 'Certificates', 'Alumni community', 'Follow-up courses'.

Add speaker notes to Slide 6 (the Capstone slide, index 5): 'Remind students to submit capstone proposals by week 6'.

Save the presentation as /home/user/Documents/python_ds_course.odp.

Deck has exactly 7 slides

check-slide-title 0 "Python for Data Science"

Slide 1 title

check-slide-contains 0 "8-Week Intensive Curriculum"

Slide 1 subtitle

check-slide-title 1 "Week 1-2: Foundations"

Slide 2 title

Slide 2 bullet Python syntax

check-slide-contains 1 "Data structures"

Slide 2 bullet data structures

Slide 2 bullet functions

check-slide-title 2 "Week 3-4: Data Wrangling"

Slide 3 title

Slide 3 bullet NumPy

check-slide-contains 2 "pandas DataFrames"

Slide 3 bullet pandas

check-slide-contains 2 "Cleaning real datasets"

Slide 3 bullet cleaning

check-slide-title 3 "Week 5-6: Visualisation & Stats"

Slide 4 title

check-slide-contains 3 "Matplotlib basics"

Slide 4 bullet Matplotlib

Slide 4 bullet Seaborn

check-slide-contains 3 "Descriptive statistics"

Slide 4 bullet stats

check-slide-title 4 "Week 7: Machine Learning"

Slide 5 title

check-slide-contains 4 "scikit-learn API"

Slide 5 bullet scikit-learn

check-slide-contains 4 "Train/test split"

Slide 5 bullet train/test

check-slide-contains 4 "Model evaluation"

Slide 5 bullet evaluation

Slide 6 title

Slide 6 bullet dataset

check-slide-contains 5 "Deliver notebook"

Slide 6 bullet deliverable

Slide 6 bullet peer review

Slide 7 title

Slide 7 bullet certificates

check-slide-contains 6 "Alumni community"

Slide 7 bullet alumni

check-slide-contains 6 "Follow-up courses"

Slide 7 bullet follow-up

check-notes-contain 5 "capstone proposals"

Slide 6 notes mention capstone proposals

Slide 6 notes mention week 6

Output ODP file exists


Open the file /home/user/Documents/messy_deck.odp in LibreOffice Impress. The deck has 8 slides with duplicates. The current slide order (by title) is:
1. Intro
2. Data
3. Intro (duplicate)
4. Analysis
5. Data (duplicate)
6. Findings
7. Analysis (duplicate)
8. Outro

Clean up the deck so it has exactly 5 unique slides in this order:
1. Intro
2. Data
3. Analysis
4. Findings
5. Conclusion

Specifically:
- Delete the duplicate Intro, duplicate Data, and duplicate Analysis slides.
- Rename the last slide from 'Outro' to 'Conclusion'.
- Replace the body text on the renamed Conclusion slide with 'Next steps and acknowledgements'.

Save the file keeping the same /home/user/Documents/messy_deck.odp path and ODP format.

Exactly 5 slides

Slide 1 Intro

Slide 2 Data

Slide 3 Analysis

Slide 4 Findings

Slide 5 Conclusion

check-slide-contains 4 "Next steps and acknowledgements"

Conclusion body updated

File saved


Open the file /home/user/Documents/workshop_slides.pptx in LibreOffice Impress. This presentation has 5 slides with titles: 'Workshop Introduction', 'Agenda', 'Exercise 1', 'Exercise 2', 'Wrap Up'.

Delete slide 3 ('Exercise 1') and slide 4 ('Exercise 2'). Add 3 new slides after 'Agenda' (before 'Wrap Up'):
   - New Slide 3: Title 'Hands-On Lab 1', body text 'Build a REST API in 30 minutes'
   - New Slide 4: Title 'Hands-On Lab 2', body text 'Deploy to Kubernetes cluster'
   - New Slide 5: Title 'Hands-On Lab 3', body text 'Set up CI/CD pipeline with GitHub Actions'

Add speaker notes to Slide 3 ('Hands-On Lab 1'): 'Ensure all attendees have Node.js installed.'

The final presentation should have exactly 6 slides in this order:
1. Workshop Introduction
2. Agenda
3. Hands-On Lab 1
4. Hands-On Lab 2
5. Hands-On Lab 3
6. Wrap Up

Save the file.

Presentation has exactly 6 slides

check-slide-title 0 "Workshop Introduction"

Slide 1 title is 'Workshop Introduction'

Slide 2 title is 'Agenda'

Slide 3 title is 'Hands-On Lab 1'

check-slide-contains 2 "Build a REST API in 30 minutes"

Slide 3 contains expected body text

check-notes-contain 2 "Ensure all attendees have Node.js installed"

Slide 3 notes contain expected text

Slide 4 title is 'Hands-On Lab 2'

check-slide-contains 3 "Deploy to Kubernetes cluster"

Slide 4 contains expected body text

Slide 5 title is 'Hands-On Lab 3'

check-slide-contains 4 "Set up CI/CD pipeline with GitHub Actions"

Slide 5 contains expected body text

Slide 6 title is 'Wrap Up'

File has been saved to disk


Open the file /home/user/Documents/financial_review.odp in LibreOffice Impress. The deck currently has 5 slides: 'FY2025 Financial Review', 'Revenue', 'Expenses', 'Net Income', 'Cashflow'. Two numeric values are wrong.

Perform the following changes:

1. On the 'Revenue' slide (slide 2), replace the existing revenue figure with 'Total revenue: 18.4M'. Keep other body content on the slide.
2. On the 'Expenses' slide (slide 3), replace the existing expenses figure with 'Total expenses: 12.1M'. Keep other body content.
3. Add a new slide at the end with title 'Outlook' and body text 'Targeting 22M revenue in FY2026'.
4. Add a slide transition effect (any non-None transition, for example Fade) to every slide in the final 6-slide deck.

The final deck should have exactly 6 slides. Save the file (Ctrl+S) keeping the same /home/user/Documents/financial_review.odp path and ODP format.

Exactly 6 slides

check-slide-title 0 "FY2025 Financial Review"

Slide 1 title preserved

Slide 2 Revenue

check-slide-contains 1 "Total revenue: 18.4M"

Revenue corrected

Slide 3 Expenses

check-slide-contains 2 "Total expenses: 12.1M"

Expenses corrected

Slide 4 Net Income

Slide 5 Cashflow

Slide 6 Outlook

check-slide-contains 5 "Targeting 22M revenue in FY2026"

Outlook body

Slide 1 has transition

Slide 2 has transition

Slide 3 has transition

Slide 4 has transition

Slide 5 has transition

Slide 6 has transition

File saved


Using LibreOffice Impress, build a brand-new 5-slide interactive navigation deck and save it as /home/user/Documents/nav_deck.odp (native ODP format). The deck must be laid out exactly like this:

Slide 1 — Title 'Menu'. On this slide, insert THREE rectangle shapes (Insert > Shape > Basic Shapes > Rectangle, or toolbar rectangle tool). Double-click each rectangle to add text:
  - Rectangle 1: text 'Section A'
  - Rectangle 2: text 'Section B'
  - Rectangle 3: text 'Section C'

For each rectangle, set an Interaction so that clicking it during the slideshow jumps to the correct slide. Right-click the rectangle > Interaction (or Slide Show > Interaction). In the Interaction dialog, choose 'Go to page or object' and select the target slide:
  - The 'Section A' rectangle must jump to Slide 2
  - The 'Section B' rectangle must jump to Slide 3
  - The 'Section C' rectangle must jump to Slide 4

Slide 2 — Title 'Section A'
Slide 3 — Title 'Section B'
Slide 4 — Title 'Section C'
Slide 5 — Title 'Thanks'

Save the file as /home/user/Documents/nav_deck.odp in ODP format (File > Save As, set filename, select ODF Presentation (.odp)).

nav_deck.odp is saved on disk

Deck has exactly 5 slides

Slide 1 title is 'Menu'

Slide 2 title is 'Section A'

Slide 3 title is 'Section B'

Slide 4 title is 'Section C'

Slide 5 title is 'Thanks'

Slide 1 contains a shape with text 'Section A'

Slide 1 contains a shape with text 'Section B'

Slide 1 contains a shape with text 'Section C'

check-shape-jumps-to-slide /home/user/Documents/nav_deck.odp 0 "Section A" "Section A"

Rectangle 'Section A' on slide 1 jumps to the 'Section A' slide

check-shape-jumps-to-slide /home/user/Documents/nav_deck.odp 0 "Section B" "Section B"

Rectangle 'Section B' on slide 1 jumps to the 'Section B' slide

check-shape-jumps-to-slide /home/user/Documents/nav_deck.odp 0 "Section C" "Section C"

Rectangle 'Section C' on slide 1 jumps to the 'Section C' slide


Open the file /home/user/Documents/product_launch.pptx in LibreOffice Impress. This is a 5-slide product launch presentation for 'Widget Pro'.

Make the following modifications:

1. On Slide 1 (title 'Widget Pro'), change the subtitle from 'Launch Date: March 2025' to 'Launch Date: June 2025'.

2. On Slide 2 (title 'Key Features'), add a new bullet point 'AI-powered recommendations' after the existing bullet points. The existing bullets are: 'Real-time analytics dashboard', 'Cross-platform compatibility', 'Enterprise-grade security', '24/7 customer support'.

3. On Slide 3 (title 'Pricing'), change the text '$49.99/month' to '$39.99/month' in the first bullet. The first bullet should read 'Starter Plan: $39.99/month'.

4. On Slide 4 (title 'Go-to-Market Strategy'), add speaker notes: 'Emphasize the 30-day free trial offer.'

5. On Slide 5, change the title from 'Thank You' to 'Thank You & Next Steps'. Add a new line of body text: 'Visit widgetpro.com for early access.'

Save the file (Ctrl+S).

check-slide-contains 0 "Launch Date: June 2025"

Slide 1 contains updated launch date 'Launch Date: June 2025'

check-slide-contains 1 "AI-powered recommendations"

Slide 2 contains new bullet 'AI-powered recommendations'

check-slide-contains 1 "Real-time analytics dashboard"

Slide 2 still contains original bullet 'Real-time analytics dashboard'

Slide 3 contains updated price '$39.99/month'

check-notes-contain 3 "Emphasize the 30-day free trial offer"

Slide 4 notes contain 'Emphasize the 30-day free trial offer'

check-slide-contains 4 "Thank You & Next Steps"

Slide 5 contains updated title 'Thank You & Next Steps'

check-slide-contains 4 "Visit widgetpro.com for early access"

Slide 5 contains new body text about early access

Presentation still has 5 slides


Create a new presentation from scratch in LibreOffice Impress with exactly 7 slides for a nonprofit fundraising pitch deck.

Slide 1 (Title Slide): Title 'CleanWaters Initiative', subtitle 'Annual Fundraiser 2026'.
Slide 2: Title 'The Problem'. Body: '2 billion people lack safe drinking water', 'Disease, missed school, lost wages'.
Slide 3: Title 'Our Mission'. Body: 'Deliver low-cost filtration to rural communities', 'Train local technicians', 'Measure health outcomes'.
Slide 4: Title 'Impact So Far'. Body: '412 villages served in 2025', '68 local technicians trained', '250k liters of clean water daily'.
Slide 5: Title 'Programs for 2026'. Body: 'School filtration program', 'Women-led technician cohorts', 'Mobile water testing lab'.
Slide 6: Title 'How You Can Help'. Body: 'Donate at cleanwaters.org/give', 'Sponsor a village', 'Volunteer for field trips'.
Slide 7: Title 'Thank You'. Body: 'Together we can end the water crisis'.

Add a slide transition effect to every slide (any non-None transition, for example Fade).

Add speaker notes:
- Slide 1: 'welcome donors and thank them for attending'
- Slide 4: 'highlight Kerala region success story'
- Slide 7: 'invite everyone to the afterparty reception'

Save the presentation as /home/user/Documents/cleanwaters_pitch.pptx.

Exactly 7 slides

check-slide-title 0 "CleanWaters Initiative"

Slide 1 title

check-slide-contains 0 "Annual Fundraiser 2026"

Slide 1 subtitle

Slide 2 title

check-slide-contains 1 "2 billion people lack safe drinking water"

Slide 2 body

Slide 3 title

check-slide-contains 2 "Deliver low-cost filtration to rural communities"

Slide 3 body

Slide 4 title

check-slide-contains 3 "412 villages served in 2025"

Slide 4 body

Slide 5 title

check-slide-contains 4 "School filtration program"

Slide 5 body

Slide 6 title

check-slide-contains 5 "Donate at cleanwaters.org/give"

Slide 6 body

Slide 7 title

Slide 1 transition

Slide 2 transition

Slide 3 transition

Slide 4 transition

Slide 5 transition

Slide 6 transition

Slide 7 transition

Slide 1 notes

Slide 4 notes

Slide 7 notes

File saved


Create a new presentation from scratch in LibreOffice Impress with exactly 8 slides for a new employee onboarding deck at a company called Helix Labs.

Slide 1 (Title): Title 'Welcome to Helix Labs', subtitle 'Day 1 Orientation'.
Slide 2: Title 'Engineering'. Body: 'Platform, Product, Infrastructure', 'Led by the CTO'.
Slide 3: Title 'Design'. Body: 'Research, Visual, Systems', 'Led by the VP of Design'.
Slide 4: Title 'Operations'. Body: 'People, Finance, Legal', 'Led by the COO'.
Slide 5: Title 'Marketing'. Body: 'Brand, Growth, Content', 'Led by the CMO'.
Slide 6: Title 'Benefits'. Body: '401k match up to 6%', 'Unlimited PTO', 'Health, dental, vision'.
Slide 7: Title 'Resources'. Body: 'wiki.helixlabs.internal', 'help desk at ext 1200'.
Slide 8: Title 'Questions'. Body: 'Ask anything'.

Every single slide (slides 1 through 8) must have non-empty speaker notes. Suggested notes - but any non-empty text works:
- Slide 1: 'orient new hires and set the tone'
- Slide 2: 'walk through engineering org chart'
- Slide 3: 'show the design portfolio'
- Slide 4: 'introduce key operations contacts'
- Slide 5: 'share marketing wins'
- Slide 6: 'explain benefits enrollment window'
- Slide 7: 'demo the wiki search'
- Slide 8: 'encourage open discussion'

Save the presentation as /home/user/Documents/helix_onboarding.pptx.

Exactly 8 slides

check-slide-title 0 "Welcome to Helix Labs"

Slide 1 title

check-slide-contains 0 "Day 1 Orientation"

Slide 1 subtitle

Slide 2 title

check-slide-contains 1 "Platform, Product, Infrastructure"

Slide 2 body

Slide 3 title

check-slide-contains 2 "Research, Visual, Systems"

Slide 3 body

Slide 4 title

check-slide-contains 3 "People, Finance, Legal"

Slide 4 body

Slide 5 title

check-slide-contains 4 "Brand, Growth, Content"

Slide 5 body

Slide 6 title

check-slide-contains 5 "401k match up to 6%"

Slide 6 body

Slide 7 title

Slide 7 body

Slide 8 title

Slide 1 has non-empty notes

Slide 2 has non-empty notes

Slide 3 has non-empty notes

Slide 4 has non-empty notes

Slide 5 has non-empty notes

Slide 6 has non-empty notes

Slide 7 has non-empty notes

Slide 8 has non-empty notes

File saved


Create a new presentation from scratch in LibreOffice Impress with exactly 6 slides for a quarterly product roadmap.

Slide 1 (Title Slide): Title 'NovaCore Product Roadmap 2026', subtitle 'Prepared by Product Team'.
Slide 2: Title 'Q1 2026'. Body: 'Beta release of collaboration mode', 'Migrate auth service to v2', 'Public API v3 preview'.
Slide 3: Title 'Q2 2026'. Body: 'Mobile app public launch', 'Template gallery', 'Integration with Slack and Teams'.
Slide 4: Title 'Q3 2026'. Body: 'Enterprise SSO support', 'Audit log export', 'Granular role permissions'.
Slide 5: Title 'Q4 2026'. Body: 'AI assistant general availability', 'Offline mode', 'Zero-downtime upgrades'.
Slide 6: Title 'Open Questions'. Body: 'Pricing tiers still under review', 'Hardware partner TBD'.

Add a slide transition effect to every slide (any non-None transition is fine - for example Fade or Push).

Add speaker notes to Slide 2: 'check engineering capacity before committing'.
Add speaker notes to Slide 5: 'schedule a GA readiness review in early December'.

Save the presentation as /home/user/Documents/novacore_roadmap.pptx.

Exactly 6 slides

check-slide-title 0 "NovaCore Product Roadmap 2026"

Slide 1 title

check-slide-contains 0 "Prepared by Product Team"

Slide 1 subtitle

Slide 2 title

check-slide-contains 1 "Beta release of collaboration mode"

Slide 2 body

Slide 3 title

check-slide-contains 2 "Mobile app public launch"

Slide 3 body

Slide 4 title

check-slide-contains 3 "Enterprise SSO support"

Slide 4 body

Slide 5 title

check-slide-contains 4 "AI assistant general availability"

Slide 5 body

Slide 6 title

Slide 1 has transition

Slide 2 has transition

Slide 3 has transition

Slide 4 has transition

Slide 5 has transition

Slide 6 has transition

check-notes-contain 1 "engineering capacity"

Slide 2 notes

check-notes-contain 4 "GA readiness review"

Slide 5 notes

File saved


Create a new presentation from scratch in LibreOffice Impress with exactly 5 slides for a Quarterly Business Report.

Slide 1 (Title Slide): Title 'Q4 2025 Business Report', subtitle 'Prepared by Analytics Team'.

Slide 2: Title 'Revenue Overview'. Body content as bullet points:
- 'North America: $4.2M'
- 'Europe: $2.8M'
- 'Asia Pacific: $1.5M'

Slide 3: Title 'Key Achievements'. Body content as bullet points:
- 'Launched 3 new products'
- 'Customer retention at 94%'
- 'Reduced costs by 12%'

Slide 4: Title 'Challenges'. Body content as bullet points:
- 'Supply chain delays'
- 'Increased competition'
- 'Talent acquisition'

Slide 5: Title 'Next Steps'. Body content as bullet points:
- 'Expand APAC operations'
- 'Invest in R&D'
- 'Hire 50 engineers'

Add speaker notes to Slide 1: 'Welcome everyone to the Q4 review.'

Save the presentation as /home/user/Documents/quarterly_report.pptx.

Presentation has exactly 5 slides

check-slide-title 0 "Q4 2025 Business Report"

Slide 1 title is 'Q4 2025 Business Report'

check-slide-contains 0 "Prepared by Analytics Team"

Slide 1 contains subtitle 'Prepared by Analytics Team'

Slide 2 title is 'Revenue Overview'

check-slide-contains 1 "North America: $4.2M"

Slide 2 contains 'North America: $4.2M'

Slide 2 contains 'Europe: $2.8M'

check-slide-contains 1 "Asia Pacific: $1.5M"

Slide 2 contains 'Asia Pacific: $1.5M'

Slide 3 title is 'Key Achievements'

check-slide-contains 2 "Customer retention at 94%"

Slide 3 contains 'Customer retention at 94%'

Slide 4 title is 'Challenges'

check-slide-contains 3 "Supply chain delays"

Slide 4 contains 'Supply chain delays'

Slide 5 title is 'Next Steps'

check-slide-contains 4 "Expand APAC operations"

Slide 5 contains 'Expand APAC operations'

check-notes-contain 0 "Welcome everyone to the Q4 review"

Slide 1 notes contain 'Welcome everyone to the Q4 review'

File quarterly_report.pptx exists


Open /home/user/Documents/legacy_sales.pptx in LibreOffice Impress. The deck currently has 8 slides with titles (in order): 'Acme CRM 2021 Edition', 'Problem Landscape', 'Legacy Architecture', 'Features', 'Old Pricing', 'Case Study: BrightCorp', 'Competitor Comparison', 'Call to Action'.

Clean up and rebrand the deck to match the 2026 edition:

1. Delete the two obsolete slides: 'Legacy Architecture' and 'Old Pricing'.
2. Rename the title of slide 1 from 'Acme CRM 2021 Edition' to 'Acme CRM 2026 Edition'.
3. On the 'Features' slide, replace its body so that the bullets are exactly: 'AI-powered pipeline scoring', 'Unified inbox', 'GDPR-ready audit logs'.
4. Add a new slide at the END of the deck titled 'Contact' with body bullets: 'sales@acmecrm.example', '+1 415 555 0142', 'acmecrm.example/book-demo'.

Final deck must have exactly 7 slides in this order: 'Acme CRM 2026 Edition', 'Problem Landscape', 'Features', 'Case Study: BrightCorp', 'Competitor Comparison', 'Call to Action', 'Contact'.

Save the file (Ctrl+S) back to /home/user/Documents/legacy_sales.pptx.

Deck has 7 slides

check-slide-title 0 "Acme CRM 2026 Edition"

Slide 1 rebranded title

Slide 2 title

Slide 3 title

check-slide-contains 2 "AI-powered pipeline scoring"

Features bullet 1

Features bullet 2

check-slide-contains 2 "GDPR-ready audit logs"

Features bullet 3

check-slide-title 3 "Case Study: BrightCorp"

Slide 4 title

check-slide-title 4 "Competitor Comparison"

Slide 5 title

Slide 6 title

Slide 7 title

Contact email

check-slide-contains 6 "+1 415 555 0142"

Contact phone

Contact demo URL

File still exists on disk


Open the file /home/user/Documents/project_plan.pptx in LibreOffice Impress. This presentation has 6 slides with titles in this order: 'Cover', 'Timeline', 'Budget', 'Team', 'Risks', 'Summary'.

The slides are in the wrong order. Reorder them so the final order is:
1. 'Cover'
2. 'Team'
3. 'Timeline'
4. 'Budget'
5. 'Risks'
6. 'Summary'

Specifically, move the 'Team' slide (currently slide 4) to become slide 2. The rest should shift accordingly.

Then add a new slide at the end (slide 7) with:
- Title: 'Appendix'
- Body text: 'Additional reference materials available upon request.'

The final presentation should have exactly 7 slides. Save the file (Ctrl+S).

Presentation has exactly 7 slides

Slide 1 title is 'Cover'

Slide 2 title is 'Team'

Slide 3 title is 'Timeline'

Slide 4 title is 'Budget'

Slide 5 title is 'Risks'

Slide 6 title is 'Summary'

Slide 7 title is 'Appendix'

check-slide-contains 6 "Additional reference materials available upon request"

Slide 7 contains the expected body text